$|++; require 5.008; use strict; use vars qw /@childs $child @list/; use threads; use threads::shared; my @up: shared; my @down: shared; sub ping_hosts { my ($ip) = @_; print "Testing : $ip\n"; my $resp = `ping $ip`; print "$resp\n"; if ($_=~ /reply/i) { push @up, "$ip : Up\n"; } else { push @down, "$ip : Down\n"; } } open (LST, "c:\\list.txt")||die "$^E : $!\n"; chomp (@list=); foreach(@list) { push @childs, threads->create("ping_hosts","$_"); } foreach $child (@childs) { eval {$child->join();}; } print @up; print "\n________________________\n"; print @down;