use Win32::Process; # Win32::Process::Create( $process, $program, $command_line, $inherit, $flags, $directory) $app = "d:\\apps\\perl\\bin\\perl.exe"; $cmd = 'perl daemon.pl'; $b_inherit = 1; $flags = CREATE_NEW_PROCESS || DETACHED_PROCESS; $dir = '.'; $result; $result = Win32::Process::Create( $process, $app, $cmd, $b_inherit, $flags, $dir); if ($result) { print "$cmd has been created with process id of $result\n"; } else { print "unable to start $cmd\n"; print "error : " . Win32::FormatMessage( Win32::GetLastError() ); }