in reply to Re^2: why can't I just cat the file???
in thread why can't I just cat the file???

Ed, this is excellent stuff,
Your reply had me read frantically more on while and defined and I have now better understanding on true and defined(as well as while)
Just a quick question though, how/where did you know that while is doing that internally?
I cannot find any offical doc saying that's what it does. Your explanation helped me a lot but just wondering if I am not reading the right stuff or I am just not reading it carefully

Replies are listed 'Best First'.
Re^4: why can't I just cat the file???
by halley (Prior) on Feb 08, 2008 at 18:04 UTC
    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 ]