$ cat a.pl use strict; use warnings; use POSIX qw( WNOHANG ); my $pid = fork(); if ($pid == 0) { sleep(5); exit $ARGV[0]; } while (waitpid($pid, WNOHANG) == 0) { sleep 1; print time(), "\n"; } print "$?\n";