我已经制作了一个脚本来管理管理员需要在机器上安装的模块列表.
我试图通过下面的代码检查安装的模块.奇怪的是它在机器中显示甚至安装的模块not installed
#!/usr/bin/perl -w
my @module_list =('Smart::Comments','HTML::Parse');
foreach (@module_list) {
eval { require "$_" };
if (!($@)) {
print "Module Not installed : $_\n";
}
}
Run Code Online (Sandbox Code Playgroud)
您需要使用字符串形式,eval因为require需要一个裸字参数来匹配模块名称的双冒号分隔形式(例如Scalar::Util).(如果它不是一个单词,那么它需要是一个相对路径,例如'Scalar/Util.pm')
#!/usr/bin/perl
use strict;
use warnings;
my @module_list = ('Scalar::Util', 'flibble');
foreach (@module_list) {
if (!eval "require $_") {
print "Module not installed: $_\n";
}
}
Run Code Online (Sandbox Code Playgroud)