$ perl -MO=Deparse -e'while($foo=<>){}'
while (defined($foo = <ARGV>)) {
();
}
-e syntax OK
This is a relatively recent change from two or so years ago, though; I don't rememeber which version introduced it off-hand.
Even without the definedness test it wouldn't stop on a blank line either, btw. Don't forget the record separator. A blank line is not an empty string; it's "\n". What that construct would fail to process is the very last line of a file, if it contains only a 0 and is not terminated by a record separator. (It can't be blank, obviously, because a blank line with no record separator is, well, err, no line at all. :-))
Makeshifts last the longest.
|