in reply to Re: array assignment with list operator , no parenthesis
in thread array assignment with list operator , no parenthesis
You are putting the result of the operation 7,2,3 which is 7.
No, it is not. Consider:
perl -le 'sub foo { 7,2,3 } $foo = foo(); print $foo' 3
It's a precedence problem as other posters pointed out.
update Well, actually... the above example is misleading, since the comma operator is used in list context here - subroutines always return lists (if not declared with a single ($) as prototype, that is). And evaluating a list in scalar context gives its last element - which is just what the comma operator does ;-) A better example might be
print not 1,0; print $/; __END__ 1
The not operator gets the 0 and turns it to 1.
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
|
|---|