On 18 Jun 2001 21:22:56 -0500, Me wrote:
<snip />
>
> (I've given up trying to find that last reference,
> having spent far longer looking for it than I have
> on the rest of this email. Maybe someone else
> knows where perldoc for <> is?)
>
>
There is more information there, but this is enough to get the picture.
<snip href="perldoc perlop">
The null filehandle <> is special: it can be used to
emulate the behavior of sed and awk. Input from <> comes
either from standard input, or from each file listed on
the command line. Here's how it works: the first time <>
is evaluated, the @ARGV array is checked, and if it is
empty, "$ARGV[0]" is set to "-", which when opened gives
you standard input. The @ARGV array is then processed as
a list of filenames. The loop
while (<>) {
... # code for each line
}
is equivalent to the following Perl-like pseudo code:
unshift(@ARGV, '-') unless @ARGV;
while ($ARGV = shift) {
open(ARGV, $ARGV);
while (<ARGV>) {
... # code for each line
}
}
except that it isn't so cumbersome to say, and will
actually work. It really does shift the @ARGV array and
put the current filename into the $ARGV variable. It also
uses filehandle ARGV internally--<> is just a synonym for
<ARGV>, which is magical. (The pseudo code above doesn't
work because it treats <ARGV> as non-magical.)
</snip
--
Today is Setting Orange, the 24th day of Confusion in the YOLD 3167
Umlaut Zebra über alles!