while ($children) { while ((my $pid = waitpid(-1, &WNOHANG)) > 0) { print "$?\n" if $?; delete $children{$pid}; $children--; print "$children children running\n"; } sleep; }