for my $k1 ( keys %foo ) { next if not defined $bar{ $k1 }; for my $k2 ( keys %{ $foo{ $k1 } } ) { next if not defined $bar{ $k1 }{ $k2 }; dance() if $foo{ $k1 }{ $k2 } eq $bar{ $k1 }{ $k2 }; } }