my $pid = system (1, 'FOR /R C:\ %G IN (*.*) DO type %G'); sleep(2); print `taskkill.exe /PID $pid /T /F`; #### #return (kill 0,$pid); - don't know but it doesn't work.. my $throbj; if (Win32::Process::Open($throbj,$pid,0)) { my $ecode; $throbj->GetExitCode ($ecode); if ($ecode==Win32::Process::STILL_ACTIVE) { return 1; } #STILL ACTIVE return 0; }