use 5.12.0; my $search = '1'; my @AoH = ( { name => 'bla', alter => 9, }, { name => 'baba', alter => 19, }, { name => 'foo', alter => 11, }, ); my @matches; for my $i ( 0 .. $#AoH ) { # add index if searchstring was found in hash values push @matches, $i if grep { m/\Q$search\E/ } values %{ $AoH[$i] }; } # print result of search say "$search matched in elements: @matches";