in reply to Combine range of numbers.

This was a question on the perl quiz of the week that ran for a few months last year. Question #6 asks exactly what you are looking for.

Here is MJDs summary.

The shortest solution was provided by Andreas Koenig:

use Set::IntSpan; # CPAN rules :-) use strict; sub expand_number_list { my $run = shift; my $set = Set::IntSpan->new($run); $set->elements; }

Here is a list of everyone else's submisions.

Update: Silly me, I included Andreas' answer for expand_number_list by mistake! Here is the one you are looking for:

use Set::IntSpan; # CPAN rules :-) use strict; sub format_number_list { my(@n) = @_; my $set = Set::IntSpan->new(join ",", @n); my $run = $set->run_list; $run =~ s/,/, /g; # give them the spaces $run; }

Replies are listed 'Best First'.
Re: Re: Combine range of numbers.
by the_0ne (Pilgrim) on Jan 31, 2004 at 04:56 UTC
    Thanks cees, I'll check those out.