in reply to memory use when merging tied hashrefs

I'm not sure I understand your question ...

Let's decompose in simpler steps.

This

 %H3 = (%H1,%H2)

is a list copy, %H1 and %H2 are temporarily flattened to a list of (key,value) pairs, joined and used to constuct a new hash.

 %H3 = ( k1a => v1a, ... , k2a => v2a ,... )

The $hash3 = { ... } part is only taking a ref of the constructed hash list.

Not knowing the nature of your tie, this is the best I can tell.

You might want to check if flattening creates the special costs observed via tied operations.

try print %$hash2

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery FootballPerl is like chess, only without the dice