#!/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();