my $pid; if (defined($pid = fork)) { if ($pid) { &parent(); } else { &child(); } } else { die "Fork didn't work...\n"; } sub child { print "Running child process instructions...\n"; sleep 5; # If you have system-level commands to process, # you will still need to use system(...) or `...` exit; } sub parent { waitpid($pid,0); # Will wait for a specific child process # wait; # Will wait for ANY child process to finish print "Finished waiting for child process $pid\n"; }