I want to manipulate the array in $myHash{"tres"}, and in order to prevent deferencing it all the time, I'll copy it into an actual array:$myHash{"uno"} = "one"; $myHash{"dos"} = "two"; $myHash{"tres"}->[0] = "three-point-oh"; $myHash{"tres"}->[1] = "three-point-one"; $myHash{"tres"}->[2] = "three-point-two"; $myHash{"quatro"} = "four";
Once I'm done manipulating the data, I want to put it back into the original data structure. I can do either one of these:@myArray = @{$myHash{"tres"}}; #DeRef & Copy to @myArray $myArray[3] = "three-point-three"; $myArray[4] = "three-point-four";
For very large arrays, the second statement is faster than the first one.@{$myHash{"tres"}} = @myArray; #Copies Array to Hash $myHash{"tres"} = \@myArray; #Copies Ref to Hash
Of course, the problem is my initial copy to @myArray is not very efficient either. What I'd really love to do is something like this:
Which would allow me to refer to $myHash{"tres"} as @myArray in my code without copying the whole array in the first place. (Then, I wouldn't even worry about putting the array back into my original data structure).\@myArray = $myHash{"tres"};
I guess what I'm really interested in is creating an alias of $myHash{"tres"} as @myArray. Is there anyway to do that in Perl?
In reply to Getting an Array Reference Into an Array by qazwart
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |