http://qs1969.pair.com?node_id=1187177


in reply to Re^8: Syntax for casting map to a hash or an array
in thread Syntax for casting map to a hash or an array

Yes, these two are exactly the same, except for one gratitous reference-dereference round trip.

If you dereference a reference and take a reference to the dereferenced reference, this reference will be the same as the original reference.

#!/usr/bin/perl -l $h = {map { $_ => 'fish' } qw(one two red blue)}; print $h; print \%{$h}; print \%{\%{$h}}; print \%{\%{\%{$h}}}; print \%{\%{\%{\%{$h}}}}; print \%{\%{\%{\%{\%{$h}}}}}; print \%{\%{\%{\%{\%{\%{$h}}}}}}; print \%{\%{\%{\%{\%{\%{\%{$h}}}}}}}; print \%{\%{\%{\%{\%{\%{\%{\%{$h}}}}}}}}; __END__ HASH(0x17ea548) HASH(0x17ea548) HASH(0x17ea548) HASH(0x17ea548) HASH(0x17ea548) HASH(0x17ea548) HASH(0x17ea548) HASH(0x17ea548) HASH(0x17ea548)

Sorry for so may ref-deref, couldn't stop... %-)

perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

Replies are listed 'Best First'.
Re^10: Syntax for casting map to a hash or an array
by stevieb (Canon) on Apr 05, 2017 at 19:30 UTC
    "If you dereference a reference and take a reference to the dereferenced reference, this reference will be the same as the original reference."

    LOL :) It took me a lot of years coding Perl before I would have been able to understand exactly what's being said there. If one can grasp that, along with the actual syntax to do it, one can do anything.

    It was my bad originally to claim they both work for different reasons. *That* was kind of a typo as well. I was thinking too far ahead at the time ;)