while (1) { my $completed_pid = waitpid(-1, WNOHANG); if ($completed_pid == -1) { # No more children -- exit loop last; } if ($completed_pid > 0) { print ": $completed_pid is done; $childcnt running\n"; $childcnt--; sleep 1; } }