in reply to keep hash insert oder, hash inside hash
I think the problem lies with Tie::Autotie. If you leave it out, things Just Work:
#!perl -w use strict; use Tie::IxHash; tie my(%hash1), 'Tie::IxHash'; $hash1{ test }= 1; tie my(%hash2), 'Tie::IxHash'; $hash2{ foo }= 1; $hash2{ bar }= \%hash1; print "H2: $_ => $hash2{ $_ }" for keys %hash2; print "H1: $_ => $hash1{ $_ }" for keys %hash1; __END__ >perl -wl tmp.pl H2: foo => 1 H2: bar => HASH(0x378998) H1: test => 1
Looking at Tie::Autotie, it mentions your situation as a bug. "Assigning a reference" does not work. That's what you do with $hash2{ "b" }= \%hash1.
|
|---|