use strict; use warnings; use Data::Dump qw/pp dd/; use List::Util qw(min max); my @AoA = ( ["nick","99"], ["john","88"], ["peter","77"], ["thomas","99"] ); my @numbers=(99, 88, 77, 88); my $max = max(@numbers); pp map { $_->[0] } grep { $_->[1] == $max } @AoA;