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}