you don't have to keep all $arefs after construction.
DB<112> for $aref ( [1,2,3],[4,5,6],[7,8,9] ) { $lookup{$aref} = $aref; $hash{$aref} = [ reverse @$aref ]; } => "" DB<113> \%hash => { "ARRAY(0xa547e40)" => [9, 8, 7], "ARRAY(0xa5c2e68)" => [6, 5, 4], "ARRAY(0xa5c3188)" => [3, 2, 1], } DB<114> \%lookup => { "ARRAY(0xa547e40)" => [7, 8, 9], "ARRAY(0xa5c2e68)" => [4, 5, 6], "ARRAY(0xa5c3188)" => [1, 2, 3], } DB<115> print "@{$lookup{$_}}\n" for keys %hash 7 8 9 4 5 6 1 2 3
Hiding all of this behind a tied hash should be feasible, (depending on implementation details of Tie::Hash , IAW when, where and how "stringization" happens )
Anyway I didn't try to find such implementations on CPAN.
One use case could be to implement sets of complex data structures including set operations
Cheers Rolf
( addicted to the Perl Programming Language)
In reply to Re^3: Allocation of anonymous arrays
by LanX
in thread Allocation of anonymous arrays
by OwlHoot
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |