$^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 A