in reply to while or for?

The construct while(<>) is special as it iterates on the magical ARGV filehandle and sets $ARGV to the current filename, checking for definedness all the while. Whereas for(<>) just slurps ARGV and iterates over that (which is similar to the while construct, but not quite the same). Also you probably mean to use $_ instead of $ARGV (unless of course you've cheekily abused the global nature of *ARGV and used the scalar slot)1. The while behaviour is well documented in Programming Perl (ver 3, page 82) and in the I/O Operators section of perlop.
HTH

_________
broquaint

1 addendum - as Skeeve points out $ARGV holds the name of the current filename that is being iterated over, so is not in fact abuse of the scalar slot of *ARGV :)

update: added clarifications and fixed mistakes

Replies are listed 'Best First'.
Re: Re: while or for?
by Skeeve (Parson) on Jul 21, 2003 at 10:31 UTC
    Okay. Understood.

    > Also you probably mean to use $_ instead of $ARGV

    I really meant $ARGV. I wanted to store, in a hash, for each line the names of the files they occure in.