Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re4: When does while() test for defined vs truth

by blakem (Monsignor)
on Dec 17, 2001 at 08:46 UTC ( #132471=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Re: When does while() test for defined vs truth
in thread When does while() test for defined vs truth

I noticed that the behavior was consistant for filehandle reads, which is why I found the behavior of globbing perplexing...

The following lines are equivalent to each other:

while (<STDIN>) { print; } # tests for definedness print while <STDIN>; # tests for definedness
But these two are not equivalent to each other:
while ($_ = <*>) { print } # tests for definedness print while ($_ = <*>); # tests for truthfulness
Update -- Here is an example in action:
% 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


Comment on Re4: When does while() test for defined vs truth
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://132471]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2014-09-16 03:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (155 votes), past polls