Да, Win32 :: Process может вернуть полный 32-битный код выхода со знаком. Используйте метод GetExitCode
. Но это немного сложно, потому что возвращаемое значение - , а не - код выхода (это возвращаемое значение функции Windows GetExitCodeProcess , которая указывает на успех или неудачу функции). Код завершения сохраняется в переменной, которую вы передаете методу.
use Win32::Process;
use Win32;
sub ErrorReport{
print Win32::FormatMessage( Win32::GetLastError() );
}
my $ProcessObj;
Win32::Process::Create($ProcessObj,
"C:\\winnt\\system32\\notepad.exe",
"notepad temp.txt",
0,
NORMAL_PRIORITY_CLASS,
".") or die ErrorReport();
$ProcessObj->Wait(INFINITE);
my $exitCode;
$ProcessObj->GetExitCode($exitCode) or die ErrorReport();