Number::Range(3pm) | User Contributed Perl Documentation | Number::Range(3pm) |
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","100");
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.
$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.
@rangeList = $range->rangeList;
Returns the range as an array list where each element in the list is an array representing the start and stop points of a range. Single element ranges are returned as single element arrays with only on indice.
[
[10,20],
[25,30],
[100] ]
None by default.
Number::Tolerant, Tie::RangeHash, and Array::IntSpan for similar modules.
Larry Shatzer, Jr., <larrysh@cpan.org>
Copyright (C) 2004-14 by Larry Shatzer, Jr.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2022-06-16 | perl v5.34.0 |