Net::Ping has serveral Bugs and is not threatsafe. I posted a fix here and asked for help to fix and upload to cpan... There is an error in setting up the dataframe and an error in building the identification number.
Use net-ping-external or use Backticks and ping. If you just read a logfile, lets say with file-tail, just use a RegEx. While...{ if ($line =~ m/unreachable/){print "down!\n"}; ...} -----Ursprüngliche Nachricht----- Von: Chas Owens [mailto:[EMAIL PROTECTED] Gesendet: Freitag, 31. August 2007 15:21 An: Rodrigo Tavares Cc: beginners@perl.org Betreff: Re: Open files and looking a word On 8/31/07, Rodrigo Tavares <[EMAIL PROTECTED]> wrote: > Hello, > > I'm doing a script, it run a ping in many computers > and create a log file. > > I need search in log file the word "Destination Host Unreachable". So, > I have to take below line. After using regular expressions taking > ferrari.lab and print "The host is down !". > > example: > PING ferrari.lab (192.168.1.152) 56(84) bytes of data. > From goal.lab (192.168.1.7) icmp_seq=2 Destination > Host Unreachable > > How I do it ? > > Begin of script, wih array with host names: > > print "Testing the computers....\n"; > for (my $i=0 ; $i < 5 ; $i++) > { > system "ping -c 4 $hosts[$i] >> hosts.txt"; > } > Snip if you have an array of hosts then you should say for my $host (@host) { system "ping -c 4 $hosts >> hosts.txt"; } instead, but really, you shouldn't even be using system: #!/usr/bin/perl use strict; use warnings; use Net::Ping; my @hosts = @ARGV; my $pinger = Net::Ping->new; for my $host (@host) { print "$host is down\n" unless $pinger->ping($host); } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/