my $prev; my $sum; my $max = -1; for (@array) { if (defined($prev) && $_ == $prev+1) { $prev = $_; $sum += $_; next; } if (defined($prev)) { $max = $sum if $sum > $max; undef $prev; undef $sum; } #if ($_ > 0) { # zero isn't considered positive if ($_ >= 0) { # zero is considered positive $prev = $_; $sum = $_; } }