use Win32::Process; Win32::Process::Create($ProcessObj, "c:\\Perl\\bin\\perl.exe", "perl -e \"print q(yr code here\n)\"", 1, NORMAL_PRIORITY_CLASS, ".") $a = $ProcessObj->Wait(1000); # units = ms $ProcessObj->Kill($some_exit_code); print "[$a] ==> I *think* this will be zero if the " . " process terminated on its own before Wait() finished\n";