You are viewing the version of this documentation from Perl 5.29.1. This is a development version of Perl.
$EXTENDED_OS_ERROR
$^E

Error information specific to the current operating system. At the moment, this differs from "$!" under only VMS, OS/2, and Win32 (and for MacPerl). On all other platforms, $^E is always just the same as $!.

Under VMS, $^E provides the VMS status value from the last system error. This is more specific information about the last system error than that provided by $!. This is particularly important when $! is set to EVMSERR.

Under OS/2, $^E is set to the error code of the last call to OS/2 API either via CRT, or directly from perl.

Under Win32, $^E always returns the last error information reported by the Win32 call GetLastError() which describes the last error from within the Win32 API. Most Win32-specific code will report errors via $^E. ANSI C and Unix-like calls set errno and so most portable Perl code will report errors via $!.

Caveats mentioned in the description of "$!" generally apply to $^E, also.

This variable was added in Perl 5.003.

Mnemonic: Extra error explanation.