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

http://skim.cz

LICENSE AND COPYRIGHT

© 2024-2025 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.06