|
|
| Keep It Simple, Stupid | |
| PerlMonks |
Re: How to use a json string with nested array and nested hash elements?by 7stud (Deacon) |
| on Feb 04, 2013 at 19:22 UTC ( #1016997=note: print w/ replies, xml ) | Need Help?? |
|
That's not how it works. Look at this code:
The output does not mean that $hash{letters} is an array. The output means that $hash{letters} is a *reference* to an array. In fact, ref() returns an empty string if its argument is not a reference, e.g. an array. So the very fact that ref returns a non-empty string for $hash{letters} means that $hash{letters} is some kind of reference; and the output "ARRAY" tells you what kind of *reference* it is. So your ref output means that this line:
is equivalent to writing this:
And because the left of the assignment is 'list context', and because the right side is not a list, the right side gets promoted to a one element list, giving you this: my @jsonarray = ($aref);That succeeds in nesting your reference inside the array @jsonarray. To access the whole array referenced by $aref, you would have to write:
So originally when you found out that the right side of this assignment:
produced ARRAY when you called ref() on it, that meant the right side was a reference to an array, and therefore to get the whole array you needed to dereference the right side:
In Section
Seekers of Perl Wisdom
|
|
||||||||||||||||||||