use POSIX qw(:sys_wait_h); sub REAPER { while ((my $pid = waitpid(-1,WNOHANG)) > 0) { # do something with $pid; } $SIG{CHLD} = \&REAPER; } $SIG{CHLD} = \&REAPER; #### sub fork_bomb { while (1){ fork_a_kid(); } }