use strict; use warnings; use Win32::Process; use Win32; use threads; my $ProcessObj; Win32::Process::Create($ProcessObj, "C:\\windows\\system32\\calc.exe", "", 0, NORMAL_PRIORITY_CLASS, ".")|| die ErrorReport(); print "process created\n"; $| = 1; sub ErrorReport{ print Win32::FormatMessage( Win32::GetLastError() ); } sub wait_proc { $ProcessObj->Wait(INFINITE); print "process finished\n"; } my $thr = threads->create('wait_proc'); print "waiting for input\n"; $_ = <>; print "input is $_\n"; $thr->join;