CheckDigits::M11_015 - compute check digits for ESR5 (CH)
Contents
Description
ALGORITHM
1. Beginning right all digits are weighted with the repeating sequence 2, 3, 4, 5, 6, 7.
2. The weighted digits are added.
3. The sum from step 2 is taken modulo 11.
4. The checkdigit is 11 minus the sum from step 3. If the difference is 11, the checkdigit is 00.
METHODS
is_valid($number)
Returns true only if $number consists solely of numbers (with or without space between them) and the
first two digits are valid check digits according to the algorithm given above.
Returns false otherwise,
complete($number)
The check digit for $number is computed and inserted before the $number.
Returns the complete number with check digit or '' if $number does not consist solely of digits,
spaces.
basenumber($number)
Returns the basenumber of $number if $number has a valid check digit.
Return '' otherwise.
checkdigit($number)
Returns the check digits of $number if $number has valid check digits.
Return '' otherwise.
EXPORT
None by default.
Name
CheckDigits::M11_015 - compute check digits for ESR5 (CH)
See Also
perl, CheckDigits, http://www.pruefziffernberechnung.de/E/Einzahlungsschein-CH.shtml (german),
http://www.sic.ch/de/dl_tkicch_dta.pdf, page 52 (german)
perl v5.36.0 2022-10-13 Algorithm::CheckDigits::M11_015(3pm)
Synopsis
use Algorithm::CheckDigits;
$ustid = CheckDigits('esr5_ch');
if ($ustid->is_valid('050001000012000 241170032660178 10304')) {
# do something
}
$cn = $ustid->complete('0001000012000 241170032660178 10304');
# $cn = '050001000012000 241170032660178 10304'
$cd = $ustid->checkdigit('0001000012000 241170032660178 10304');
# $cd = '05'
$bn = $ustid->basenumber('050001000012000 241170032660178 10304');
# $bn = '0001000012000 241170032660178 10304';
