NAME

Mo::utils::Number - Mo number utilities.

SYNOPSIS

use Mo::utils::number qw(check_int check_natural check_number check_percent check_positive_natural);

check_int($self, $key);
check_natural($self, $key);
check_number($self, $key);
check_percent($self, $key);
check_positive_natural($self, $key);

DESCRIPTION

Mo number utilities for checking of data objects.

SUBROUTINES

check_int

check_int($self, $key);

Check parameter defined by $key if it's number integer (... -2, -1, 0, 1, 2, ...). Value could be undefined or doesn't exist.

Returns undef.

check_natural

check_natural($self, $key);

Check parameter defined by $key if it's number a natural number (0, 1, 2, ...). Value could be undefined or doesn't exist.

Returns undef.

check_number

check_number($self, $key);

Since version 0.02.

Check parameter defined by $key which is number (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

check_percent($self, $key);

Check parameter defined by $key if it's number a percent. Value could be undefined or doesn't exist.

Returns undef.

check_positive_natural

check_positive_natural($self, $key);

Check parameter defined by $key if it's number a positive natural number (1, 2, ...). Value could be undefined or doesn't exist.

Returns undef.

ERRORS

check_int():
        Parameter '%s' must be a integer.
                Value: %s
check_natural():
        Parameter '%s' must be a natural number.
                Value: %s
check_number():
        Parameter '%s' must be a number.
                Value: %s
check_percent():
        Parameter '%s' has bad percent value.
                Value: %s
        Parameter '%s' has bad percent value (missing %).
                Value: %s
check_positive_natural():
        Parameter '%s' must be a positive natural number.
                Value: %s

EXAMPLE1

use strict;
use warnings;

use Mo::utils::Number qw(check_int);

my $self = {
        'key' => -2,
};
check_int($self, 'key');

# Print out.
print "ok\n";

# Output:
# ok

EXAMPLE2

use strict;
use warnings;

use Error::Pure;
use Mo::utils::Number qw(check_int);

$Error::Pure::TYPE = 'Error';

my $self = {
        'key' => 1.2,
};
check_int($self, 'key');

# Print out.
print "ok\n";

# Output like:
# #Error [...Number.pm:?] Parameter 'key' must be a integer.

EXAMPLE3

use strict;
use warnings;

use Mo::utils::Number qw(check_natural);

my $self = {
        'key' => 0,
};
check_natural($self, 'key');

# Print out.
print "ok\n";

# Output:
# ok

EXAMPLE4

use strict;
use warnings;

use Error::Pure;
use Mo::utils::Number qw(check_natural);

$Error::Pure::TYPE = 'Error';

my $self = {
        'key' => -2,
};
check_natural($self, 'key');

# Print out.
print "ok\n";

# Output like:
# #Error [...Number.pm:?] Parameter 'key' must be a natural number.

EXAMPLE5

use strict;
use warnings;

use Mo::utils::Number qw(check_number);

my $self = {
        'key' => '10',
};
check_number($self, 'key');

# Print out.
print "ok\n";

# Output:
# ok

EXAMPLE6

use strict;
use warnings;

$Error::Pure::TYPE = 'Error';

use Mo::utils::Number qw(check_number);

my $self = {
        'key' => 'foo',
};
check_number($self, 'key');

# Print out.
print "ok\n";

# Output like:
# #Error [...Number.pm:?] Parameter 'key' must be a number.

DEPENDENCIES

Error::Pure, Exporter, Readonly, Scalar::Util.

SEE ALSO

Mo

Micro Objects. Mo is less.

Mo::utils

Mo utilities.

Wikibase::Datatype::Utils

Wikibase datatype utilities.

REPOSITORY

https://github.com/michal-josef-spacek/Mo-utils-Number

AUTHOR

Michal Josef Špaček mailto:[email protected]

http://skim.cz

LICENSE AND COPYRIGHT

© 2024-2025 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.02