use Win32::Process; use Win32; sub ErrorReport{ print Win32::FormatMessage( Win32::GetLastError() ); } Win32::Process::Create($ProcessObj, "C:/WINNT/system32/CMD.EXE", "dir", # print dir just to see if I can do anything at all 0, CREATE_NEW_CONSOLE, ".")|| die ErrorReport(); $ProcessObj->Wait(INFINITE);