http://qs321.pair.com?node_id=744240


in reply to Re: "defined" in while loop Edit | Delete | Quote | Reply | Private Reply
in thread "defined" in while loop Edit | Delete | Quote | Reply | Private Reply

Also, it isn't necessary for $_ to be undefined (or unassigned) for the loop to end.

While that's true in general,

>perl -le"$_=4; while (--$_) { print }" 3 2 1

It's not true in this case.

>perl -e"print 0" | perl -le"while ($_ = <>) { print $_ ? 'true' : 'fa +lse' }" false >perl -MO=Deparse -e"while (<>) {}" while (defined($_ = <ARGV>)) { (); } -e syntax OK >perl -MO=Deparse -e"while ($_ = <>) {}" while (defined($_ = <ARGV>)) { (); } -e syntax OK >perl -MO=Deparse -e"while (defined($_ = <>)) {}" while (defined($_ = <ARGV>)) { (); } -e syntax OK