一个非常非常重要的问题:
- 你有 Strawberry 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 行。要求在 C:/strawberry/ 调用 Win32/OLE/Lite.pm perl/vendor/lib/Win32/OLE.pm 第 48 行要求在 C:\Users\c_desaik\Desktop\pwrdb\offtarget\pwrdb 调用 Win32/OLE.pm。 pl line 37 main::BEGIN() 在 C:/strawberry/perl/vendor/lib/Win32/OLE/Lite.pm line 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(来自Win32/OLE/Lite.pm),另一个称为Win32::OLE(来自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 Doc。
现在,运行你的程序,希望一切正常。