#!/usr/bin/perl -w use strict; use POSIX ":sys_wait_h"; defined (my $pid = fork()) or die "D'oh"; if ( $pid ) { print "$$ gonna wait...\n"; my $kid; do { $kid = waitpid $pid, WNOHANG; } until ( $kid > 0 ); print "Ok, done waiting\n"; } else { exec 'sleep 10; echo "Done sleeping\n"'; }