Perl's one step ahead of you:
$ 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.
In reply to Re^4: Modification of a read-only value
by Aristotle
in thread Modification of a read-only value
by Sprad
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |