use warnings; use strict; my $pid = fork(); if ($pid){ print "parent...\n"; } else { sleep 2; system "test.bat"; } if ($pid){ print "parent: doing stuff...\n"; } else { print "child: exiting\n"; } if ($pid){ print "parent: done doing stuff, waiting...\n"; wait; print "parent: children dead, safe to exit\n"; } #### parent: doing stuff parent: done doing stuff, waiting... "inside batch script" child: exiting parent: children dead, safe to exit