Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: list context (iterators)

by LanX (Saint)
on Dec 07, 2010 at 00:12 UTC ( [id://875713]=note: print w/replies, xml ) Need Help??


in reply to list context

in my $x = 10; the = is a scalar assignment which returns the assigned scalar

in my ($y) = 10; the = is a list assignment which returns the number of assigned elements¹

That's a crucial trick for iterators, where returned elements might be false (like 0 , '' or undef).

So

while ( ($x) = iterator() ) { ... }
will work as long as anything (i.e. no empty list) is returned, while
while ( $x = iterator() ) { ... }
can break if you don't use special magics like "0 but true".

Cheers Rolf

UPDATE:

1) in scalar context!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (2)
As of 2024-04-25 22:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found