$_ = join ",", sort {$a <=> $b} 1, 2, 3, 6, 9, 10, 13, 22, 20, 19, 15, 21; 1 while s/(-?)(\b[0-9]+),([0-9]+\b)(?(?{$3==1+$2})|(*FAIL))/$1?"-$3":"$2-$3"/e; say;