#!/usr/bin/perl -W use strict; use warnings; my %hash; $hash{test}{1} = 'test1'; $hash{test}{1}{test2} = 'test3'; $hash{test}{2} = 'test5'; foreach my $nr ( grep {exists $hash{test}{$_}{test2}} keys %{$hash{test}} ) { print $nr; }