NAME
Tie::NumRange - Keeps a number within a range of values.
SYNOPSIS
use Tie::NumRange;
tie my($chr), Tie::NumRange => (
100, # initial
0, # min
255, # max
);
$chr *= 3; # $chr is 255
$chr = -5; # $chr is 0
tie my($positive), Tie::NumRange => (
1,
1,
undef
);
$positive = 2**16; # ok
$positive = 0; # $pos is 1
tie my($wrap), Tie::NumRange::Wrap => (
0, # initial
0, # min
10, # max
);
while ($wrap < 10) {
# 0, 3, 6, 9, 2, 5, 8, 1, 4, 7
$wrap += 3;
}
DESCRIPTION
This module institutes a range of values for a number. The lower and upper bounds can be unlimited by passing undef
in their place.
Tie::NumRange
Constructor
tie $number, Tie::NumRange => ($init, $min, $max);
If $min
is undef
, the number has no lower bound. Likewise for $max
.
Tie::NumRange::Wrap
Constructor
tie $number, Tie::NumRange::Wrap => ($init, $min, $max);
Neither range can be undef
. The value will wrap around when it goes outside the stated bounds.
AUTHOR
Jeff "japhy" Pinyan
CPAN ID: PINYAN
japhy@pobox.com
http://www.pobox.com/~japhy/