我的电脑正在运行Windows 7.大约一周前,我为Windows XP或更高版本下载并安装了Strawberry Perl 5.18.2.2(64位)。在我尝试包含"使用win32 :: Clipboard;"。
之前,我没有遇到运行这个新版本的问题。模块Clipboard.pm是最近下载的一部分,位于我的电脑C:\ strawberry \ win32 \ Clipboard \ Clipboard.pm。请注意,在此完整路径中,除了" C"的三个实例外,所有字母均为小写。
如果我打印出@INC的现有内容,结果就是这三个目录: C:/草莓/ perl的/网站/ lib目录 C:/草莓/ perl的/供应商/ lib中 C:/草莓/ perl的/ lib中
从" C:/ strawberry / win32 /剪贴板"不是原来的" @ INC",我知道我必须添加该目录才能使用win32 :: Clipboard;"所以我雇用了" BEGIN"命令在这个简单程序的第二行上执行此操作。
#!C:\strawberry\perl\bin\perl - w
BEGIN {unshift @INC, "C:/strawberry/win32/Clipboard"}
use strict;
foreach (@INC)
{
print "$_\n";
}
<STDIN>;
这个简单的程序运行没有错误,并且确实移动了路径&#34; C:/ strawberry / win32 / Clipboard&#34;通过在BEGIN命令之后打印出@INC的内容证明了@INC,这产生了这样的结果: C:/草莓/的Win32 /剪贴板 C:/草莓/ perl的/网站/ lib目录 C:/草莓/ perl的/供应商/ lib中 C:/草莓/ perl的/ lib中
因为我设法得到&#34; C:/ strawberry / win32 / Clipboard&#34;进入@INC,我以为我现在可以使用win32 :: Clipboard;&#34;所以我将该行添加到程序中以制作这个新版本:
#!C:\strawberry\perl\bin\perl - w
BEGIN {unshift @INC, "C:/strawberry/win32/Clipboard"}
use Win32::Clipboard; # NOTE that in this line I have also tried "use Win32::Clipboard::Clipboard;" and "use Clipboard::Clipboard;" without success.
use strict;
foreach (@INC)
{
print "$_\n";
}
<STDIN>;
添加新行&#34;使用Win32 :: Clipboard;&#34;,在运行程序时导致此错误。
&#34;无法在@INC中找到Win32 / Clipboard.pm(您可能需要安装Win32 :: Clipboard模块)(@INC包含:C:/ strawberry / win32 / Clipboard C:/ strawberry / perl / site / lib C:/ strawberry / perl / vendor / lib C:/ strawberry / perl / lib。)at print_inc_array.pl第5行。 BEGIN失败 - 编译在第5行的print_inc_array1.pl中止。&#34;
尽管如此,我已经在互联网上看了很多被认为是正确方法的例子,但这些例子都不适合我。我无法弄清楚这个简单程序有什么问题,其目的只是找出如何编写模块Clipboard.pm,以便我可以在实际程序中编写该模块。我再次尝试改变&#34;使用&#34; line to&#34;使用Win32 :: Clipboard :: Clipboard;&#34;并使用剪贴板::剪贴板;&#34;没有成功。任何帮助将不胜感激。
谢谢,
Reef Alive
答案 0 :(得分:1)
当您说use Win32::Clipboard;
Perl尝试在Win32\Clipboard.pm
中的某个目录中找到@INC
时。自从您将C:/strawberry/win32/Clipboard
添加到@INC
后,它会尝试加载C:\strawberry\win32\Clipboard\Win32\Clipboard.pm
。但那个档案并不存在;它取而代之的是C:\strawberry\win32\Clipboard\Clipboard.pm
。所以Perl无法找到该文件。
但Win32::Clipboard是一个XS模块,这意味着它包含的代码必须由C编译器编译才能使用。您提到的目录布局表明您刚刚解压缩了存档。那不会起作用;你需要编译XS代码。
编译XS代码并在正确的路径中安装模块的最简单方法是使用Strawberry Perl附带的cpan
命令。只需输入
cpan Win32::Clipboard
在命令提示符下。