use strict; use warnings; my @matrix = ( [48, 219, 11021], [72, 190, 11006], [203, 177, 11005], [301, 186, 11013], [309, 119, 11015], [309, 216, 11017], [309, 147, 11000], [343, 180, 10990], [346, 179, 10989], [451, 258, 11008], [838, 162, 11014] ); # e.g. filter out all sub-arrays with x <= 309: @matrix = grep { $_->[0] <= 309 } @matrix; local $, = " "; local $\ = "\n"; print @$_ for @matrix; __END__ Output is: 48 219 11021 72 190 11006 203 177 11005 301 186 11013 309 119 11015 309 216 11017 309 147 11000