SYNOPSIS
use Algorithm::CheckDigits;
$m001 = CheckDigits('m001');
if ($m001->is_valid('1234567892')) {
# do something
}
$cn = $m001->complete('123456789'); # $cn = '1234567892'
$cd = $m001->checkdigit('1234567892'); # $cd = '2'
$bn = $m001->basenumber('1234567892'); # $bn = '123456789'
DESCRIPTION
ALGORITHM
- 1.
- All digits are added.
- 2.
- All digits at even positions are added.
- 3.
- The sum of step 1 and 2 is taken modulo 7.
- 4.
- This is the check digit.
METHODS
- is_valid($number)
-
Returns true only if $number consists solely of numbers and the last digit
is a valid check digit according to the algorithm given above.
Returns false otherwise,
- complete($number)
-
The check digit for $number is computed and concatenated to the end
of $number.
Returns the complete number with check digit or undef if $number does not consist solely of digits.
- basenumber($number)
-
Returns the basenumber of $number if $number has a valid check
digit.
Return undef otherwise.
- checkdigit($number)
- Returns the check digit belonging to $number or undef if $number does not consist solely of digits.