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粘贴。

欢迎任何建议。

+1

*总是*'使用strict'和'使用警告'all''在您编写的每个Perl程序的顶部 – Borodin

+0

我试图在Windows 7系统中安装Win32 :: Clipboard,但也失败了,所以我可以不要使用Win32 :: Clipboard。我得到一些测试失败的错误 –

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"); 

要求要么xselxclip安装。