grep {exists $hash{test}{$_}{test2}} keys %{$hash{test}} # vs. grep { exists $hash{test}->{$_}->{test2} } keys %{ $hash{test} }