NAME
Mo::utils::Number::Range - Mo number utilities for ranges.
SYNOPSIS
use Mo::utils::Number::Range qw(check_int_range check_natural_range check_number_range check_percent_range check_positive_natural_range);
check_int_range($self, $key, $min, $max);
check_natural_range($self, $key, $min, $max);
check_number_range($self, $key, $min, $max);
check_percent_range($self, $key, $min, $max);
check_positive_natural_range($self, $key, $min, $max);
DESCRIPTION
Mo number range utilities for checking of data objects.
SUBROUTINES
check_int_range
check_int_range($self, $key, $min, $max);
Since version 0.03.
Check parameter defined by $key
if it's in range of integer numbers (... -2, -1, 0, 1, 2, ...). Value could be undefined or doesn't exist.
Returns undef.
check_natural_range
check_natural_range($self, $key, $min, $max);
Since version 0.03.
Check parameter defined by $key
if it's in range of natural numbers (0, 1, 2, ...). Value could be undefined or doesn't exist.
Returns undef.
check_number_range
check_number_range($self, $key, $min, $max);
Since version 0.03.
Check parameter defined by $key
which is in range of numbers (positive or negative) or not. Number could be integer, float, exponencial and negative. Implementation is via "looks_like_number" in Scalar::Util.
Put error if check isn't ok.
Returns undef.
check_percent_range
check_percent_range($self, $key, $min, $max);
Since version 0.03.
Check parameter defined by $key
if it's in range of percent numbers. Value could be undefined or doesn't exist.
Returns undef.
check_positive_natural_range
check_positive_natural_range($self, $key, $min, $max);
Since version 0.03.
Check parameter defined by $key
if it's in range of positive natural numbers (1, 2, ...). Value could be undefined or doesn't exist.
Returns undef.
ERRORS
check_int_range():
Parameter '%s' must be a integer.
Value: %s
Parameter '%s' must be a integer between %s and %s.
Value: %s
check_natural_range():
Parameter '%s' must be a natural number.
Value: %s
Parameter '%s' must be a natural number between %s and %s.
Value: %s
check_number_range():
Parameter '%s' must be a number.
Value: %s
Parameter '%s' must be a number between %s and %s.
Value: %s
check_percent_range():
Parameter '%s' has bad percent value.
Value: %s
Parameter '%s' has bad percent value (missing %).
Value: %s
Parameter '%s' must be a percent between %s% and %s%.
Value: %s
check_positive_natural_range():
Parameter '%s' must be a positive natural number.
Value: %s
Parameter '%s' must be a positive natural number between %s and %s.
Value: %s
EXAMPLE1
use strict;
use warnings;
use Mo::utils::Number::Range qw(check_int_range);
my $self = {
'key' => -2,
};
check_int_range($self, 'key', -3, -1);
# Print out.
print "ok\n";
# Output:
# ok
EXAMPLE2
use strict;
use warnings;
use Error::Pure;
use Mo::utils::Number::Range qw(check_int_range);
$Error::Pure::TYPE = 'Error';
my $self = {
'key' => -2,
};
check_int_range($self, 'key', 1, 2);
# Print out.
print "ok\n";
# Output like:
# #Error [...Range.pm:?] Parameter 'key' must be a integer between 1 and 2.
EXAMPLE3
use strict;
use warnings;
use Mo::utils::Number::Range qw(check_natural_range);
my $self = {
'key' => 0,
};
check_natural_range($self, 'key', -1, 1);
# Print out.
print "ok\n";
# Output:
# ok
EXAMPLE4
use strict;
use warnings;
use Error::Pure;
use Mo::utils::Number::Range qw(check_natural_range);
$Error::Pure::TYPE = 'Error';
my $self = {
'key' => 4,
};
check_natural_range($self, 'key', 0, 3);
# Print out.
print "ok\n";
# Output like:
# #Error [...Range.pm:?] Parameter 'key' must be a natural number between 0 and 3.
EXAMPLE5
use strict;
use warnings;
use Mo::utils::Number::Range qw(check_number_range);
my $self = {
'key' => '10',
};
check_number_range($self, 'key', 1.1, 11);
# Print out.
print "ok\n";
# Output:
# ok
EXAMPLE6
use strict;
use warnings;
$Error::Pure::TYPE = 'Error';
use Mo::utils::Number::Range qw(check_number_range);
my $self = {
'key' => 11,
};
check_number_range($self, 'key', 1, 10);
# Print out.
print "ok\n";
# Output like:
# #Error [...Range.pm:?] Parameter 'key' must be a number between 1 and 10.
EXAMPLE7
use strict;
use warnings;
use Mo::utils::Number::Range qw(check_percent_range);
my $self = {
'key' => '10%',
};
check_percent_range($self, 'key', 1.1, 11);
# Print out.
print "ok\n";
# Output:
# ok
EXAMPLE8
use strict;
use warnings;
$Error::Pure::TYPE = 'Error';
use Mo::utils::Number::Range qw(check_percent_range);
my $self = {
'key' => 11,
};
check_percent_range($self, 'key', 1, 10);
# Print out.
print "ok\n";
# Output like:
# #Error [...Range.pm:?] Parameter 'key' has bad percent value (missing %).
EXAMPLE9
use strict;
use warnings;
use Mo::utils::Number::Range qw(check_positive_natural_range);
my $self = {
'key' => '10',
};
check_positive_natural_range($self, 'key', 1.1, 11);
# Print out.
print "ok\n";
# Output:
# ok
EXAMPLE10
use strict;
use warnings;
$Error::Pure::TYPE = 'Error';
use Mo::utils::Number::Range qw(check_positive_natural_range);
my $self = {
'key' => -2,
};
check_positive_natural_range($self, 'key', 1, 10);
# Print out.
print "ok\n";
# Output like:
# #Error [...Range.pm:?] Parameter 'key' must be a positive natural number.
DEPENDENCIES
Error::Pure, Exporter, Mo::utils::Number, Readonly.
SEE ALSO
- Mo::utils::Number
-
Mo number utilities.
- Mo
-
Micro Objects. Mo is less.
- Mo::utils
-
Mo utilities.
REPOSITORY
https://github.com/michal-josef-spacek/Mo-utils-Number
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2024-2025 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.06