Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

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

.ds Aq ’

### NAME

CheckDigits::MBase_002 - compute check digits for blood bags (DE), BZUe (DE), VAT Registration Number (DE)

### SYNOPSIS

```

use Algorithm::CheckDigits;

\$bb = CheckDigits(blutbeutel);

if (\$bb->is_valid(2761011234567893)) {
# do something
}

\$cn = \$bb->complete(276101123456789);
# \$cn = 2761011234567893

\$cd = \$bb->checkdigit(2761011234567893);
# \$cd = 3

\$bn = \$bb->basenumber(2761011234567893);
# \$bn = 276101123456789;

```

### DESCRIPTION

#### ALGORITHM

2. Beginning left you do the following for all digits
1. S = (P + digit) modulo 10
2. If S is 0 then S = 10.
3. P = (2 * S) modulo 11
3. The check digit is (11 - P) modulo 10.

#### 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 ’’ if \$number does not consist solely of digits and spaces. basenumber(\$number) Returns the basenumber of \$number if \$number has a valid check digit. Return ’’ otherwise. checkdigit(\$number) Returns the checkdigit of \$number if \$number has a valid check digit. Return ’’ otherwise.

None by default.

### AUTHOR

Mathias Weidner, <mamawe@cpan.org>