http://www.perlmonks.org?node_id=484725


in reply to Re^5: A refactoring trap
in thread A refactoring trap

The problem with while (my $line = <DATA>) {} is real, it's just obscure

ARRRRGH! :-)

As has already been pointed out this hasn't been a problem for some time. Perl automatically adds the defined for you, as you can easily see by running:

a% perl -MO=Deparse -e 'while (my $line = <DATA>) {}' while (defined(my $line = <DATA>)) { (); } __DATA__ -e syntax OK

This hasn't been a problem for Perl for quite some time, and I wish people wouldn't keep saying it is ;-)