sub collapse_seq { return () if !@_; my @list = sort { $a <=> $b } @_; my @seqs = [ (shift(@list)) x 2 ]; for ( @list ) { if ($seqs[-1][1] + 1 == $_ ) { $seqs[-1][1] = $_; } else { push @seqs, [ $_, $_ ]; } } return map { $_->[0] == $_->[1] ? $->[0] : "$->[0]-$->[1]" } @seqs; }
In reply to Re: Print series of numbers
by ikegami
in thread Print series of numbers
by mickep76
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |