my @array = (1,5,6,7,8,55,63,77,89,103,104,105,106,200,215,554); my @runs = @array[ grep { $array[$_+1] == 1+$array[$_] .. $array[$_+1] != 1+$array[$_] } 0..$#array ]; print "@runs",$/;