Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

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

.ds Aq ’

### NAME

CheckDigits::M11_013 - compute check digits for VAT Registration Number (GR)

### SYNOPSIS

```

use Algorithm::CheckDigits;

\$ustid = CheckDigits(ustid_gr);

if (\$ustid->is_valid(123456783)) {
# do something
}

\$cn = \$ustid->complete(12345678);
# \$cn = 123456783

\$cd = \$ustid->checkdigit(123456783);
# \$cd = 3

\$bn = \$ustid->basenumber(123456783);
# \$bn = 12345678;

```

### DESCRIPTION

#### ALGORITHM

 1. Beginning right with the digit before the checkdigit all digits are weighted with 2 ** position. I. e. the last digit is multiplied with 2, the next with 4, then 8 and so on. 2. The weighted digits are added. 3. The sum from step 2 is taken modulo 11. 4. If the sum from step 3 is greater than 9, the check sum is 0 else it is the sum itself.

#### METHODS

 is_valid(\$number) Returns true only if \$number consists solely of numbers and the rightmost 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 appended to the end of \$number. Returns the complete number with check digit or ’’ if \$number does not consist solely of digits. 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>