use Set::Range;
####
my %set= ('1' => { lower => 0,
upper => 10,
upper_inclusive => 1,
},
'2' => { lower => 11,
upper => 100,
lower_inclusive => 1,
},
);
##
##
my $range=Set::Range->new(\%set);
print $range->getState('19', NUM_RANGE);
# prints "2"
##
##
my %set= ('Jan' => { lower => '1/1/2001',
upper => '1/31/2001',
upper_inclusive => 1,
lower_inclusive => 1,
}, # Days in January
'Feb' => { lower => '2/1/2001',
upper => '2/28/2001',
upper_inclusive => 1,
lower_inclusive => 1,
}, # Days in February
);
##
##
my $range=Set::Range->new(\%set);
##
##
print $range->getSet('1/11/2001', DATE_RANGE);
# prints "Jan"
##
##
Pass new() a reference to a Hash containing the set
information.
##
##
The hash defining the sets contains one hash per set
with at least 'upper' and 'lower' defined.
'upper_inclusive' and 'lower_inclusive' are optional
and are the equivalent of >= and <= for the upper and
lower set boundries.
##
##
The set hash can look like this:
##
##
{
'key1' => {
lower => 0,
upper => 10
},
'key2' => {
lower => 10,
upper => 15,
lower_inclusive => 1,
},
'key3' => {
lower => 15
upper => 25,
lower_inclusive => 1,
upper_inclusive => 1,
},
}
##
##
etc... The lower and upper values can either be
numeric values or date values in the form
mm/dd/yyyy or dd/mm/yyyy (see C<getSet> for
Euro-formatted dates)
##
##
my $set = $range->getSet(10);
my $set = $range->getSet('1/14/2002', DATE_RANGE);