=over

=item $EXTENDED_OS_ERROR

=item $^E
X<$^E> X<$EXTENDED_OS_ERROR>

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

Under VMS, C<$^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 C<$!>.  This is particularly important when C<$!>
is set to B<EVMSERR>.

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

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

Caveats mentioned in the description of C<L</$!>> generally apply to
C<$^E>, also.

This variable was added in Perl 5.003.

Mnemonic: Extra error explanation.

=back