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!


Comment on Re: list context
Select or Download Code