#! perl use strict; use warnings; use Data::Dump; my %LPAR_config = ( lpar1 => { profile1 => {}, profile2 => {}, frame => 'frame1', lpar_id => '1', }, lpar2 => { profile1 => {}, profile2 => {}, frame => 'frame1', lpar_id => '2', }, lpar3 => { profile1 => {}, profile2 => {}, frame => 'frame2', lpar_id => '1' }, lpar4 => { profile1 => {}, profile2 => {}, frame => 'frame2', lpar_id => '2', }, ); my @matches = grep { $LPAR_config{$_}->{frame } eq 'frame2' && $LPAR_config{$_}->{lpar_id} eq '1' } keys %LPAR_config; dd @matches; #### 1:43 >perl 560_SoPW.pl "lpar3" 1:44 >