in reply to Re: Re: Re: When does while() test for defined vs truth
in thread When does while() test for defined vs truth
The following lines are equivalent to each other:
But these two are not equivalent to each other:while (<STDIN>) { print; } # tests for definedness print while <STDIN>; # tests for definedness
Update -- Here is an example in action:while ($_ = <*>) { print } # tests for definedness print while ($_ = <*>); # tests for truthfulness
% mkdir newdir % cd newdir % touch 0 1 2 % ls 0 1 2 % perl -le 'while ($_ = <*>) { print }' 0 1 2 % perl -le 'print while ($_ = <*>)' [note nothing is printed here]
-Blake
|
|---|