my $re_org = qr[ '(' . join('|', qw[ABC DEF ...]) . ')' ]o; my %OrgEmp; for my $empNo (keys %emp) { push @{ $OrgEmp{$1} }, $emp{$empNo}{Emp} if $emp{$empNo}{Org} =~ $re_org; }