my @control = ( [ 2, 13, 3, 16 ], [ 10, 1, 11, 6 ], ); #### # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <-- Indicies represent original ints. my @control = ( [ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, ], [ 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, ], ); #### my @valid_row_ix = grep { sum( @{$control[$_]}[@test] ) == 0 } 0 .. $#control; #### my @valid_row_ix = grep { List::MoreUtils::none { $_ == 1 } @{$control[$_]}[@test] } 0 .. $#control;