use strict; use warnings; my @array = (1,5,6,7,8,55,63,77,89,103,104,105,106,200,215,554); local $, = ', '; print sort { $a <=> $b } keys %{ { map { ( $array[ $_ ] == $array[ $_ + 1 ] - 1 ) ? ( $array[ $_ ] => 0, $array[ $_ + 1 ] => 0 ) : () } 0 .. $#array - 1 } };