use strict; use warnings; use Data::Dumper; my @arr; @arr = ( [ 'A', 1, 0, 5, 6, 2 ], [ 'B', 3 , 4 , 5 , 6 , 7 ], [ 'C' , 2 , 4 ,3 ,5 ], [ 'D' , 6 , 7 , 8 ,8 ], [ 'E' , 2 , 5 , 4 , 5 ], [ 'F' , 4 , 3 , 2 ,2 ], [ 'G' , 1 , 2 , 4, 5 ], [ 'H' , 1 , 4 , 5, 6 ] ); my @rows = grep { grep {$_ > 6} @$_ } @arr; print Dumper(\@rows);