$ perl -Mstrict -Mwarnings -MData::Dump -le ' my %x = (a => { B => 2 }); for my $key (qw{a b}) { print join "^" => map { $x{$key}{$_} || "undef" } qw{B C}; dd \%x; } ' 2^undef { a => { B => 2 } } undef^undef { a => { B => 2 }, b => {} }