### Full Path to Background Script: my $FULL_PATH = "C:\\Program Files\\Script_Dir\\my_script.pl"; ### Converts the FULL_PATH to a Win32 "Short Pathname" my $short_path = Win32::GetShortPathName($FULL_PATH); ### Prepend "perl " to before your script's path: # *my Array '@args' is just a space separated list of arguments my $proc = Proc::Background->new("perl $short_path @args"); ### Check if the Job is still alive... 1==YES, 0==NO my $alive = $proc->alive; ### While $alive is NOT '0', then it's still running... while ($alive ne 0) { $alive = $proc->alive; if ($alive ne 0) { print "PROCESS IS STILL RUNNING...\n"; } else { print "PROCESS IS NO LONGER RUNNING...\n"; } sleep 1; } #### > no executable program located at C:\PROGRA~1\SCRIPT~1\MY_SC~2.PL