一个非常非常重要的问题:
- 你有草莓 Perl,或者
- 你有 ActivePerl 吗?
如果您有 Strawberry Perl,您将使用一个名为cpan的命令行实用程序。对于使用 GUI 的人来说,这可能有点吓人。首先,您必须运行它,以便它可以自行配置。大部分配置都是自动的,您可以简单地接受默认值。
配置完成后,您可能需要再次运行cpan
。*.pm
后缀代表 Perl 模块,您必须安装缺少的 Perl 模块。让我们再次查看您的错误消息:
Win32::OLE 在调试模式下运行:_Unique => 1 at
C:/strawberry/perl/vendor/lib/ Win32/OLE/Lite.pm第 30 行。要求Win32/OLE/Lite.pm在 C:/strawberry/处调用perl/vendor/lib/ Win32/OLE.pm第 48 行需要Win32/OLE.pm在 C:\Users\c_desaik\Desktop\pwrdb\offtarget\pwrdb.pl 调用 第 37 行 main::BEGIN() 在 C:/ 调用草莓/perl/vendor/lib/Win32/OLE/Lite.pm第 0 行 eval {...} 在 C: /strawberry/perl/vendor/lib/Win32/OLE/Lite.pm第 0 行调用 main:: (C :\Users\c_desaik\Desktop\pwrdb\offtarget\pwrdb.pl:53): 53: 我的 $prod_id = `"QPSTAtmnServer.Application";
据此,您缺少两个模块:一个称为Win32::OLE::Lite
(from Win32/OLE/Lite.pm
),另一个称为 ( Win32::OLE
from Win32/OLE
)
您可以访问http://search.cpan.com,Win32::OLE::Lite
在搜索框中输入内容,然后您将获得Win32::OLE CPAN 页面,该页面解释了如何使用此模块。原来Win32::OLE::Lite
是这个模块中包含的一个子模块。你永远不会单独解决它。
反过来,这个模块很可能依赖于其他模块,而其他模块又依赖于其他模块。别担心,CPAN 会处理所有的依赖问题。
现在,要安装这个模块,只需输入以下命令:
C:\> cpan install Win32::OLE
CPAN 会用输出页面填满你的屏幕。随着它的放大阅读并记住它,因为每个单词都是绝对重要的要记住。好吧,也许不是。但是,我建议您将 Windows 命令提示符终端屏幕缓冲区高度从 300 行更改为 9999 行,以防有重要事项。
当你这样做时,你会看到:
CPAN: CPAN::SQLite loaded ok (v0.202)
CPAN: LWP::UserAgent loaded ok (v6.04)
CPAN: Time::HiRes loaded ok (v1.9725)
Fetching with LWP:
http://cpan.strawberryperl.com/authors/01mailrc.txt.gz
CPAN: YAML::XS loaded ok (v0.38)
Fetching with LWP:
http://cpan.strawberryperl.com/modules/02packages.details.txt.gz
Fetching with LWP:
http://cpan.strawberryperl.com/modules/03modlist.data.gz
Database was generated on Tue, 10 Sep 2013 19:27:08 GMT
Updating database file ...
一直在……
您将收到大量警告:
OLE.xs:5674:68: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
OLE.xs:5676:67: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
OLE.xs:5678:70: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
OLE.xs:5680:71: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
OLE.xs:5683:63: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
....
这是课程的标准。只要你没有看到可怕的单词error,你就没事。
编译后,你会看到一堆测试:
C:\perl\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/1_nls.t ....... ok
t/2_variant.t ... ok
t/3_ole.t ....... ok
t/4_compat.t .... ok
t/5_unicode.t ... skipped: Unicode::String module not installed
t/6_event.t ..... ok
t/7_overload.t .. ok
ok
并且skipped
很好。运气好的话,你会看到:
All tests successful.
Files=7, Tests=112, 241 wallclock secs ( 0.09 usr + 0.03 sys = 0.13 CPU)
接下来,安装,你就完成了。
类型:
C:\> perldoc Win32::OLE
而且,如果安装了该模块,那应该会为您提供该模块上的Perl 文档。
现在,运行你的程序,希望一切正常。