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