http://www.perlmonks.org?node_id=451158


in reply to Re: How to build a hash?
in thread How to build a hash?

I had myself problems with it recently. As long as you storing scalars, it work perfectly as coded in the examples above. When it comes to references, your fears become true.
There is no such thing as a malloc in C or a new in C++(Ok, there is a new, but somehow different). What you have to do is placing brackets around an array or curly braces around a hash to get a copy in memory, that is not overwritten.
For example: to create a hash of references to hashes:
my %my_hash; sub my_store($\%){ my($key,$ref) = @_; $my_hash{$key} = {%$ref} }
(example not tested)