Your second argument to Win32::Process::Create is a bit strange, it should be the full path name of the child program (the others look OK). It should not wait for the child to complete, use $saSyncPL->Wait(INFINITE); for that. I am not sure what you mean by "embedded processes". The UNIX ability to switch programs without creating a new process (exec) is not available on Windows, the perl exec is only pretending to act like the UNIX one.