Number::Range - Perl extension defining ranges of numbers and testing if a number is found in the range. You can also add and delete from this range.
use Number::Range; my $range = Number::Range->new("-10..10,12,100..120"); if ($range->inrange("13")) { print "In range\n"; } else { print "Not in range\n"; } $range->addrange("200..300"); $range->delrange("250..255"); my $format = $range->range; # $format will be '-10..10,12,100..120,200..249,256..300'
Number::Range will take a description of a range, and then allow you to test on if a number falls within the range. You can also add and delete from the range.
The format used for range is pretty straight forward. To separate sections of ranges it uses a , or whitespace. To create the range, it uses .. to do this, much like Perl's own binary .. range operator in list context.
,
..
$range = Number::Range->new("10..20","25..30");
Creates the range object. It will accept any number of ranges as its input.
$range->addrange("22");
This will also take any number of ranges as input and add them to the existing range.
$range->delrange("10");
This will also take any number of ranges as input and delete them from the existing range.
$range->inrange("26"); my @results = $range->inrange("27","200");
This will take one or more numbers and check if each of them exists in the range. If passed a list, and in array context, it will return a list of 0's or 1's, depending if that one was true or false in the list position. If in scalar context, it will return a single 1 if all are true, or a single 0 if one of them failed.
0
1
$format = $range->range; @numbers = $range->range;
Depending on context this will return either an array of all the numbers found in the range, for list context. For scalar context it will return a range string.
$size = $range->size;
This will return the total number of entries in the range.
None by default.
Number::Tolerant, Tie::RangeHash, and Array::IntSpan for similar modules.
Larry Shatzer, Jr., <larrysh@cpan.org>
Copyright (C) 2004-12 by Larry Shatzer, Jr.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Number::Range, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Number::Range
CPAN shell
perl -MCPAN -e shell install Number::Range
For more information on module installation, please visit the detailed CPAN module installation guide.