my @bad_ari = (0, 3, 8, 9, 5, 2, 0, 2, 1); # will fail Statistics::Gtest my $min = 5; # minimal "goodness" my ($new_i, @good_ari) = (0); # wishful thinking begins ... for (my $i = 0; $i < scalar @bad_ari - 1; $i++) { $good_ari[$new_i] += $bad_ari[$i]; # so far so good if ($bad_ari[$i] >= $min) { # trick to sum any bad counts into the prior index $new_i++; } }