I don't know if you will find a good generic choice. If you are going to merge to hashes, what do you do with duplicates? Replace one with the other? If so, what criteria? Maybe instead merge them into an anonymous array?
Using a module seems like overkill. I'd stick to subs unless you want to be able to pull them apart afterwards in the same pieces they went in or have some other behavior like
Tie::ShadowHash, etc.
-Lee
"To be civilized is to deny one's nature."