my %byname; for my $record ( { NAME => "Jason", EMPNO => "132", }, { NAME => "Orange", EMPNO => "133", }, ) { $byname{ $record->{NAME} } = $record; } print(Dumper(\%byname)); #### my $record = $byname{$name}; #### for my $name ( keys(%byname) ) { my $record = $byname{$name}; ... } #### for my $name ( sort { $byname{$a}{EMPNO} <=> $byname{$b}{EMPNO} } keys(%byname) ) { my $record = $byname{$name}; ... } #### if (exists($byname{$name})) { # yes } else { # no }