$ cat 887880.pl #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $t1 = {a=>1, b=>2, c=>3}; my $t2 = {a=>2, b=>5, c=>7}; my %H = ( X=>$t1, Y=>$t1, Z=>$t2 ); $H{Y}{b}=11; print Dumper(\%H); $ perl 887880.pl $VAR1 = { 'Z' => { 'c' => 7, 'a' => 2, 'b' => 5 }, 'X' => { 'c' => 3, 'a' => 1, 'b' => 11 }, 'Y' => $VAR1->{'X'} }; $