http://qs321.pair.com?node_id=139208

Wookie has asked for the wisdom of the Perl Monks concerning the following question:

Quick question...

I was working on a program for quick testing of Network connectivity for a list of servers, so I wrote a forking monster that ran 20 chiildren at once, attempting connections with Net::Telnet and Net::FTP.

This was fine - until someone suggested adding Net::Traceroute to run a traceroute for each server. This was duly added, but unfortuantely once it was - the logging fron the job seemed to go nuts, and the only explanation that was offered was that Net::Traceroute somehow interferes with other versions of itself running if it's threaded?

Has anyone else experienced a problem like this - or could suggest what the problem is?

Sub used to run Traceroute:
# Subroutine check_tr # # Check Traceroute to host sub check_tr { my ($server,$timeout)=@_; die("Insufficent Arguments passed to check_tr\n") unless (defined $ +timeout); my ($conn,$log); $log="Server $server - Traceroute - "; $conn=Net::Traceroute->new(host => $server,timeout => $timeout); if ($conn->found) { # Managed to trace my $hops = $conn->hops; $log.="Hops $hops\n"; } else { $log.="*** FAILED TO TRACE ***\n"; } return($log); }

game(Wookie,opponent) eq 'Wookie' ? undef $problem : remove_limbs(arms,opponent);