在Net::Ping对CPAN和Perl是基本相同的.即使包含Net-Ping,perl自己的测试套件大多数时间通过的唯一原因是Net-Ping测试中存在这些行:
if ($ENV{PERL_CORE}) {
unless ($ENV{PERL_TEST_Net_Ping}) {
print "1..0 # Skip: network dependent test\n";
exit;
}
Run Code Online (Sandbox Code Playgroud)
因此,在构建和测试perl本身时会跳过网络测试(在这种情况下,PERL_CORE设置了环境变量).
为什么这么多测试都失败了?有时查看相应的analysis.cpantesters.org页面有助于:http: //analysis.cpantesters.org/solved?distv = Net-Ping-2.41.你看到一系列"Can ping/reach www ...."测试失败了.所以显然测试失败了,因为一些外部服务器无法访问 - 只是它们已经关闭,或者烟盒有网络问题.
我觉得使用起来很安全Net::Ping.