#!/usr/bin/perl use strict; use warnings; use Carp; use POSIX; use IO::Handle; use IPC::Open3; use Data::Dumper; sub _Forked { my $ip = shift; # croak "Couldn't fork" unless defined (my $pid = fork()); if ($pid == 0) { #CHILD while (1) { # sleep 45; my @data = `/bin/ping -w 15 -q $ip`;; my @values = ($data[4] =~ m{(\d+).\d+}g); my $time = scalar localtime(); print "$time - $ip - @values\n"; # } } # return ($pid); } sub main { my $DSname = { can => 'vfs.edu', us => 'ucla.edu', aus => 'cdu.edu.au', mal => 'um.edu.my', uk => 'imperial.ac.uk', }; # foreach my $host (keys %{$DSname}) { my $cpid = _Forked($DSname->{$host}); } # my $dpid = POSIX::waitpid(-1,WUNTRACED); } main(); #### Wed Nov 30 12:27:00 2011 - cdu.edu.au - 241 246 255 5 Wed Nov 30 12:27:00 2011 - vfs.edu - 251 254 260 3 Wed Nov 30 12:27:00 2011 - ucla.edu - 216 223 233 6 Wed Nov 30 12:27:00 2011 - um.edu.my - 112 119 124 3 Wed Nov 30 12:27:00 2011 - imperial.ac.uk - 171 178 185 6 #### Wed Nov 30 15:28:04 2011 - cdu.edu.au - 241 246 255 5 Wed Nov 30 15:28:04 2011 - vfs.edu - 251 254 260 3 Wed Nov 30 15:28:04 2011 - ucla.edu - 216 223 233 6 Wed Nov 30 15:28:04 2011 - um.edu.my - 112 119 124 3 Wed Nov 30 15:28:04 2011 - imperial.ac.uk - 171 178 185 6