=head2 Predefined Names
-The following names have special meaning to Perl. Most
+The following names have special meaning to Perl. Most
punctuation names have reasonable mnemonics, or analogs in the
shells. Nevertheless, if you wish to use long variable names,
you need only say
abs, alarm, chomp, chop, chr, chroot, cos, defined, eval, exp, glob,
hex, int, lc, lcfirst, length, log, lstat, mkdir, oct, ord, pos, print,
quotemeta, readlink, readpipe, ref, require, reverse (in scalar context only),
-rmdir, sin, split (on its second argument), sqrt, stat, study, uc, ucfirst,
+rmdir, sin, split (on its second argument), sqrt, stat, study, uc, ucfirst,
unlink, unpack.
=item *
=item $/
X<$/> X<$RS> X<$INPUT_RECORD_SEPARATOR>
-The input record separator, newline by default. This
+The input record separator, newline by default. This
influences Perl's idea of what a "line" is. Works like B<awk>'s RS
variable, including treating empty lines as a terminator if set to
the null string. (An empty line cannot contain any spaces
you are outputting to a pipe or socket, such as when you are running
a Perl program under B<rsh> and want to see the output as it's
happening. This has no effect on input buffering. See L<perlfunc/getc>
-for that. See L<perldoc/select> on how to select the output channel.
+for that. See L<perldoc/select> on how to select the output channel.
See also L<IO::Handle>. (Mnemonic: when you want your pipes to be piping hot.)
=item IO::Handle->output_field_separator EXPR
X<$=> X<$FORMAT_LINES_PER_PAGE>
The current page length (printable lines) of the currently selected
-output channel. Default is 60.
+output channel. Default is 60.
Used with formats.
(Mnemonic: = has horizontal lines.)
X<$-> X<$FORMAT_LINES_LEFT>
The number of lines left on the page of the currently selected output
-channel.
+channel.
Used with formats.
(Mnemonic: lines_on_page - lines_printed.)
=item C<$'> is the same as C<substr($var, $+[0])>
-=item C<$1> is the same as C<substr($var, $-[1], $+[1] - $-[1])>
+=item C<$1> is the same as C<substr($var, $-[1], $+[1] - $-[1])>
=item C<$2> is the same as C<substr($var, $-[2], $+[2] - $-[2])>
END {
$? = 1 if $? == 255; # die would make it 255
- }
+ }
Under VMS, the pragma C<use vmsish 'status'> makes C<$?> reflect the
actual VMS exit status, instead of the default emulation of POSIX
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<$!>.
+via C<$!>.
Caveats mentioned in the description of C<$!> generally apply to
C<$^E>, also. (Mnemonic: Extra error explanation.)
The real uid of this process. (Mnemonic: it's the uid you came I<from>,
if you're running setuid.) You can change both the real uid and
the effective uid at the same time by using POSIX::setuid(). Since
-changes to $< require a system call, check $! after a change attempt to
+changes to $< require a system call, check $! after a change attempt to
detect any possible errors.
=item $EFFECTIVE_USER_ID
You can change both the effective uid and the real uid at the same
time by using POSIX::setuid(). Changes to $> require a check to $!
-to detect any possible errors after an attempted change.
+to detect any possible errors after an attempted change.
(Mnemonic: it's the uid you went I<to>, if you're running setuid.)
C<< $< >> and C<< $> >> can be swapped only on machines
$SIG{"PIPE"} = Plumber(); # oops, what did Plumber() return??
Be sure not to use a bareword as the name of a signal handler,
-lest you inadvertently call it.
+lest you inadvertently call it.
If your system has the sigaction() function then signal handlers are
installed using it. This means you get reliable signal handling.
-The default delivery policy of signals changed in Perl 5.8.0 from
-immediate (also known as "unsafe") to deferred, also known as
+The default delivery policy of signals changed in Perl 5.8.0 from
+immediate (also known as "unsafe") to deferred, also known as
"safe signals". See L<perlipc> for more information.
Certain internal hooks can be also set using the %SIG hash. The
interpreter, C library, operating system, or an external program,
respectively.
-To illustrate the differences between these variables, consider the
+To illustrate the differences between these variables, consider the
following Perl expression, which uses a single-quoted string:
eval q{
close $pipe or die "bad pipe: $?, $!";
};
-After execution of this statement all 4 variables may have been set.
+After execution of this statement all 4 variables may have been set.
C<$@> is set if the string to be C<eval>-ed did not compile (this
may happen if C<open> or C<close> were imported with bad prototypes),
When the eval() expression above is executed, open(), C<< <PIPE> >>,
and C<close> are translated to calls in the C run-time library and
thence to the operating system kernel. C<$!> is set to the C library's
-C<errno> if one of these calls fails.
+C<errno> if one of these calls fails.
Under a few operating systems, C<$^E> may contain a more verbose
error indicator, such as in this case, "CDROM tray not closed."
In particular, the new special C<${^_XYZ}> variables are always taken
to be in package C<main>, regardless of any C<package> declarations
-presently in scope.
+presently in scope.
=head1 BUGS