特定于当前操作系统的错误信息。目前,仅在 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 中添加的。
助记符:额外的错误解释。