I'm not a Windows person, but I've noticed that there's a start command available in Windows for spawning a process - by default without wait. The two processes can communicate using Win32::Pipe - in the documentation mentally translate "server" into "parent" and "client" into "child" for your case.