in reply to Reference on List & Arrays Difference
Here you are taking a reference to the result of evaluating the list (1,2,3,4) in scalar context, which is 4:$l_ref = \(1,2,3,4);
# perl -le '$l_ref = \(1,2,3,4); print $l_ref' SCALAR(0x8150310) # perl -le '$l_ref = \(1,2,3,4); print $$l_ref' 4
so you end up with an anonymous scalar holding the value 4.
You want to use
$l_ref = [ 1,2,3,4 ];
to create an anonymous array (or array reference).
A list is not a perl data type, it's just some grouping of elements, so you can't create a reference to that. You can only take a reference to what comes out of evaluating that grouping expression, which is not an array in your case, but the number of elements inside the list result of the comma operations inside the parens.
update: Corrected interpretation of what's inside the parens. Thanks, Anno.
--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}
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Reference on List & Arrays Difference
by Anno (Deacon) on Mar 11, 2007 at 12:58 UTC | |
by shmem (Chancellor) on Mar 11, 2007 at 14:05 UTC | |
by Anno (Deacon) on Mar 11, 2007 at 15:22 UTC | |
by jwkrahn (Abbot) on Mar 11, 2007 at 22:08 UTC |