I would like to combine consecutive number ranges in Perl. Number::Range
didn't do what I expected:
use Data::Dumper;
use Number::Range;
say STDERR Dumper(Number::Range->new("1000..5555,5559..9999,5556..5557,5558")->rangeList);
results in:
$VAR1 = [
5556,
5558
];
$VAR2 = [
5559,
9999
];
$VAR3 = [
1000,
5555
];
I expected:
$VAR1 = [
1000,
9999
];
Apparently, the module represents the data that way internally. It does not seem to create a merged set of arrays as you had hoped.
If you use the range
method in scalar context, you will see a single merged range string:
use Number::Range;
my $range = Number::Range->new("1000..5555,5559..9999,5556..5557,5558");
my $format = $range->range();
print "$format\n";
Prints:
1000..9999