=over
=item $OS_ERROR
=item $ERRNO
=item $!
X X X
When referenced, C retrieves the current value
of the C C integer variable.
If C is assigned a numerical value, that value is stored in C.
When referenced as a string, C yields the system error string
corresponding to C.
Many system or library calls set C if they fail,
to indicate the cause of failure. They usually do B
set C to zero if they succeed and may set C to a
non-zero value on success. This means C, hence C, is
meaningful only I after a B:
if (open my $fh, " means that C may be unrelated to the outcome
of the C operator. Assignment to C is similarly ephemeral.
It can be used immediately before invoking the C operator,
to set the exit value, or to inspect the system error string
corresponding to error I, or to restore C to a meaningful state.
Perl itself may set C to a non-zero on failure even if no
system call is performed.
Mnemonic: What just went bang?
=back