Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  ALGORITHM::CHECKDIGITS::M11_015 (3)

.ds Aq ’

### NAME

CheckDigits::M11_015 - compute check digits for ESR5 (CH)

### 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;

```

### 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.

None by default.

### AUTHOR

Mathias Weidner, <mamawe@cpan.org>