the number of bits specified by the right argument. Arguments should
be integers. (See also L<Integer Arithmetic>.)
+Note that both "<<" and ">>" in Perl are implemented directly using
+"<<" and ">>" in C. If C<use integer> (see L<Integer Arithmetic>) is
+in force then signed C integers are used, else unsigned C integers are
+used. Either way, the implementation isn't going to generate results
+larger than the size of the integer type Perl was built with (32 bits
+or 64 bits).
+
+The result of overflowing the range of the integers is undefined
+because it is undefined also in C. In other words, using 32-bit
+integers, C<< 1 << 32 >> is undefined. Shifting by a negative number
+of bits is also undefined.
+
=head2 Named Unary Operators
The various named unary operators are treated as functions with one
$s = q{ if($a eq "}") ... }; # WRONG
-is a syntax error. The C<Text::Balanced> module on CPAN is able to do this
-properly.
+is a syntax error. The C<Text::Balanced> module (from CPAN, and
+starting from Perl 5.8 part of the standard distribution) is able
+to do this properly.
There can be whitespace between the operator and the quoting
characters, except when C<#> is being used as the quoting character.
If you call it again after this, it will assume you are processing another
@ARGV list, and if you haven't set @ARGV, will read input from STDIN.
-If angle brackets contain is a simple scalar variable (e.g.,
+If what the angle brackets contain is a simple scalar variable (e.g.,
<$foo>), then that variable contains the name of the
filehandle to input from, or its typeglob, or a reference to the
same. For example:
because the latter will alternate between returning a filename and
returning false.
-It you're trying to do variable interpolation, it's definitely better
+If you're trying to do variable interpolation, it's definitely better
to use the glob() function, because the older notation can cause people
to become confused with the indirect filehandle notation.