我正在编写一个小的Perl脚本,它依赖于一些可能的模块,因此在安装过程中我必须检查是否每个都有.我可以写use some::module,看看是否出现错误,但是像"你需要安装一些:: module"这样的短消息对于最终用户会更有帮助.
我也可以只搜索每个目录@INC,但是因为它是Perl,所以必须有一个更简单的方法.
jj3*_*j33 19
perl -MSome::Module -e ';'
Run Code Online (Sandbox Code Playgroud)
哎呀,误读了这个问题.我以为你想知道一次性的事情,而不是以可恢复的方式发现它.我总是使用这样的东西:
sub try_load {
my $mod = shift;
eval("use $mod");
if ($@) {
#print "\$@ = $@\n";
return(0);
} else {
return(1);
}
}
Run Code Online (Sandbox Code Playgroud)
您使用的是这样的:
$module = 'Some::Module';
if (try_load($module)) {
print "loaded\n";
} else {
print "not loaded\n";
}
Run Code Online (Sandbox Code Playgroud)