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
will work as long as anything (i.e. no empty list) is returned, whilewhile ( ($x) = iterator() ) { ... }
can break if you don't use special magics like "0 but true".while ( $x = iterator() ) { ... }
Cheers Rolf
UPDATE:
1) in scalar context!
|
---|
In Section
Seekers of Perl Wisdom