Perl复制到剪贴板不使用剪贴板模块

时间:2016-05-10 12:52:13

标签: perl ubuntu command ubuntu-14.04 geany

我的Ubuntu 14.04 LTS中安装了Perl 5.18.2版本。

现在我在geany中创建了一个自定义命令,我将按以下方式触发:

perl /home/ubuntu/geany_custom_cmds/get_current_directory_path.pl %f %d %e

以下是get_current_directory_path.pl文件的代码:

#!/usr/bin/perl -w

# print $ARGV[0];
use Clipboard;
foreach $argnum (0 .. $#ARGV) {
    print "$ARGV[$argnum]\n";
    Clipboard->copy($ARGV[$argnum]);
    print Clipboard->paste;
}

但我在Ubuntu剪贴板中没有得到任何参数的值,我可以通过Ctrl + V粘贴。

欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

问题是X-windows有三种不同的剪切和粘贴概念:

  • “主要选择”(可以用鼠标粘贴)
  • “二次选择”(此处不相关)
  • “剪贴板”(可以用^ V粘贴)

参考:https://linux.die.net/man/1/xsel

显然,perl Clipboard包只知道主要选择。 你可能想要“主要”和“剪贴板”,或至少“剪贴板”。

可以在https://www.av8n.com/security/Xclip.pm

找到在X-windows下解决此问题的工作代码

调用为:

xsel

要求安装xclip或{{1}}。

答案 1 :(得分:0)

Clipboard模块的编写在Windows,Mac和Linux系统上表现同样出色。为了实现这一点,它有三个不同的驱动程序模块来实现功能

Linux驱动程序使用FragmentActivity命令行工具,默认情况下,该工具未安装在Ubuntu上。您必须使用

进行安装
xclip
在模块为你工作之前

在模块的文档中确实应该对此效果进行评论,因为它远非显而易见