【发布时间】:2012-02-05 21:51:17
【问题描述】:
我在 Windows 上的小 Perl 脚本试图调用由其他人编写的依赖库 C:/strawberry/perl/vendor/lib/Term/ReadPassword/Win32.pm。
这里是C:/strawberry/perl/vendor/lib/Term/ReadPassword/Win32.pm的一部分:
package Term::ReadPassword::Win32;
use strict;
if (IsWin32()) {
eval('use Win32');
eval('use Win32::Console');
eval('use Win32API::File');
} else {
eval('use Term::ReadPassword');
}
...
my $CONIN = new Win32::Console(Win32::Console::STD_INPUT_HANDLE());
my $CONOUT = new Win32::Console(Win32::Console::STD_ERROR_HANDLE());
...
运行我的脚本时出现以下错误:
Undefined subroutine &Win32::Console::STD_INPUT_HANDLE called at C:/strawberry/perl/vendor/lib/Term/ReadPassword/Win32.pm line 58, <STDIN> line 2.
使用括号是合法的,正如 How can I optionally use Win32::Console and its constants in a cross platform way? 所讨论的那样,我已经查找了 http://metacpan.org/pod/Win32::Console。
谢谢。
【问题讨论】:
-
除了下面cjm的回答,请务必
use warnings;。 -
那么阻止 Win32::Console 加载的问题是什么,您是如何解决的?
-
@cjm 感谢您的回答。看起来我在 PC 上安装的草莓 Perl 没有正确安装 Win32::Console。使用 ppm 重新安装它修复了它。
标签: perl perl-module