$EXTENDED_OS_ERROR
$^E

特定于当前操作系统的错误信息。目前,仅在 VMS、OS/2 和 Win32(以及 MacPerl)下,此变量与 "$!" 不同。在所有其他平台上,$^E 始终与 $! 相同。

在 VMS 下,$^E 提供来自上次系统错误的 VMS 状态值。这比 $! 提供的有关上次系统错误的更具体的信息。当 $! 设置为 EVMSERR 时,这一点尤其重要。

在 OS/2 下,$^E 设置为上次通过 CRT 或直接从 perl 调用 OS/2 API 的错误代码。

在 Win32 下,$^E 始终返回 Win32 调用 GetLastError() 报告的上次错误信息,该信息描述了 Win32 API 中的上次错误。大多数 Win32 特定代码将通过 $^E 报告错误。ANSI C 和类 Unix 调用设置 errno,因此大多数可移植 Perl 代码将通过 $! 报告错误。

"$!" 描述中提到的注意事项通常也适用于 $^E

此变量是在 Perl 5.003 中添加的。

助记符:额外的错误解释。