#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash = ( 'record' => { 'employees' => { 'foo' => 'lorn', 'bar' => 'perlmonks', 'quux' => 'lornlab', } } ); my $employees = $hash{record}->{employees}; foreach my $key ( keys %{ $employees } ) { if ( $key =~ /foo/ ) { print "$key - " , $employees->{$key}, "\n"; } if ( $key =~ /f\w{2}/ ) { print "$key - " , $employees->{$key}, "\n"; } }