use strict; use warnings; use Test::More; use FindBin qw( $RealBin ); use lib $RealBin; use MyModule; if (connected()) { pass("\"connected\" works with defaults ($^O)"); } else { plan skip_all => 'Internet inaccessible'; } my $careto = $^O; if ($careto =~ /win/gmsi) { $^O = 'linux'; } else { $^O = 'win'; } ok !connected(), "\"connected\" fails with defaults overwritten ($^O)" or diag("\"connected\" returns true regardless (OS = $^O)"); $^O = $careto; done_testing; #### Package MyModule; use strict; use warnings; sub connected { my $pingcmd = 'ping -c 1 8.8.8.8'; my $pingworks = ' 0% packet loss'; if ($^O =~ /win/gmsi) { $pingcmd =~ s/-c/\/n/; $pingworks = 'bytes=32'; } my $pingrtn = qx($pingcmd); return $pingrtn =~ /$pingworks/msi; } 1;