NAME¶
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.
SYNOPSIS¶
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'
DESCRIPTION¶
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.
METHODS¶
- new
-
$range = Number::Range->new("10..20","25..30");
Creates the range object. It will accept any number of ranges as its
input.
- addrange
-
$range->addrange("22");
This will also take any number of ranges as input and add them to the
existing range.
- delrange
-
$range->delrange("10");
This will also take any number of ranges as input and delete them from the
existing range.
- inrange
-
$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.
- range
-
$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
-
$size = $range->size;
This will return the total number of entries in the range.
EXPORT¶
None by default.
SEE ALSO¶
Number::Tolerant, Tie::RangeHash, and Array::IntSpan for similar modules.
AUTHOR¶
Larry Shatzer, Jr., <larrysh@cpan.org>
COPYRIGHT AND LICENSE¶
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.