Perl复制到剪贴板不能使用剪贴板模块
问题描述:
我在我的Ubuntu 14.04 LTS中安装了Perl 5.18.2版本。Perl复制到剪贴板不能使用剪贴板模块
现在我已经在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粘贴。
欢迎任何建议。
答
Clipboard
模块的编写在Windows,Mac和Linux系统上表现良好。为了实现它有三个不同的驱动程序模块,它们实现了功能
Linux驱动程序使用xclip
命令行工具,该工具在Ubuntu上默认不安装。您必须
sudo apt install xclip
安装前的模块会为你工作
有真应该到模块的文档中这个效果的评论,因为它是远离明显
答
的问题是该X-windows的具有三个不同的剪切和粘贴的概念:
- “初级选择”(可与鼠标中被粘贴)
- “次要的选择”(未与此有关)
- “剪贴板”
参考(可以用^ V被粘贴):https://linux.die.net/man/1/xsel
显然perl的剪贴板包只知道第一次选择。 您可能需要“主要”和“剪贴板”,或者至少“剪贴板”。
工作代码来解决下的X-windows这个问题可以在https://www.av8n.com/security/Xclip.pm
调用中找到为:
use Xclip;
Xclip::copy2("some stuff");
要求要么xsel
或xclip
安装。
*总是*'使用strict'和'使用警告'all''在您编写的每个Perl程序的顶部 – Borodin
我试图在Windows 7系统中安装Win32 :: Clipboard,但也失败了,所以我可以不要使用Win32 :: Clipboard。我得到一些测试失败的错误 –