我对Perl应用程序有以下要求
requires 'Net::DNS' => 0;
现在,Net::DNS
版本1.03已损坏(请参阅Not a GLOB reference at ...IO/Select.pm line 61和#108745: Net::DNS::Resolver bgsend),我想跳过它。有没有办法说出来?
答案 0 :(得分:2)
这样的事情:
my $ver = eval { require Net::DNS; $Net::DNS::VERSION };
if (!$ver || $ver eq '1.03') {
requires 'Net::DNS' => '1.04';
}
答案 1 :(得分:1)
使用require加载模块,必要时可能使用eval,以避免错误(如果不存在)。对于大多数CPAN模块,您可以检查模块的$ VERSION变量,以查看加载的版本是否符合您的预期。如果没有,请根据需要退出或以其他方式处理问题。
BEGIN
{
require Net::DNS;
if ($Net::DNS::VERSION == 1.03) {
print STDERR "Error: Net::DNS version 1.03 loaded\n";
exit 1;
}
}