in reply to updated question: Initializing hashes of hashes

my $name = "Father" ; my @terms = qw(Mom Wife Son Daughter); my %fam_old = map{ $name => { $_,1 }} @terms;
is equivalent to
my $name = "Father" ; my %fam_old = ( $name => { 'Mom', 1 }, $name => { 'Wife', 1 }, $name => { 'Son', 1 }, $name => { 'Daugher', 1 }, );
You only get 'Daugher' (associated with 'Father'), because your hash can have only one key 'Father'; so you get the last entry and not the rest of them.