sub REAPER { # takes care of dead children $SIG{CHLD} = \&REAPER; my $pid = wait; if ($pid > -1) { $children --; print "child $pid died, only $children left\n"; delete $children{$pid}; } else { $children = 0; } }