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
In reply to Re^2: "defined" in while loop Edit | Delete | Quote | Reply | Private Reply
by ikegami
in thread "defined" in while loop Edit | Delete | Quote | Reply | Private Reply
by manish.rathi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |