I agree it's one of those cases where Perl's magic is hard to document, since it's only found when you combine TWO features (looping and inputting), not just one (inputting or looping).

There's a tiny mention of it in perlvar, but the real money is in perlop under the "I/O Operators."

My favorite is to simply ask Perl what is going on under the covers with the B::Deparse module. The deparse module will then show you the loop that Perl wrote for you!

$ perl -MO=Deparse -e"while(<>){'???'}" ------------------------------------ LINE: while (defined($_ = <ARGV>)) { '???'; }
For kicks, you can deparse the script which Perl writes for you, when you use command options like -p or -n.
$ perl -MO=Deparse -p -e"???" ------------------------------------ LINE: while (defined($_ = <ARGV>)) { '???'; } continue { print $_; }

[ e d @ h a l l e y . c c ]

In reply to Re^4: why can't I just cat the file??? by halley
in thread why can't I just cat the file??? by convenientstore

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":