use strict; use warnings; use Data::Dumper; use POSIX; print "Before setting SIG{CHLD} its value is...\n"; print Dumper($SIG{CHLD}); $SIG{CHLD}= \&REAPER; print "After setting SIG{CHLD} its value is...\n"; print Dumper($SIG{CHLD}); require Error::Vip; print "After require statement SIG{CHLD} value is...\n"; print Dumper($SIG{CHLD}); print "Calling ping now...\n"; my @cmd = ('ping', '-c', 1, '-n', '-A', '-W', 1, "164.55.89.62"); open (PING, '-|', @cmd) or confess("Can't ping -- $!"); while (my $ping = ) { print "Reading ping stream...\n"; } close PING; print "DONE\n"; sub REAPER { print "I AM A SIG{CHLD} handler\n" }