DOKK / manpages / debian 11 / libalgorithm-checkdigits-perl / Algorithm::CheckDigits::MXX_001.3pm.en
CheckDigits::MXX_001(3pm) User Contributed Perl Documentation CheckDigits::MXX_001(3pm)

CheckDigits::MXX_001 - compute check digits for PA (DE)

  use Algorithm::CheckDigits;
  $pa = CheckDigits('pa_de');
  if ($pa->is_valid('2406055684D<<6810203<0705109<6')) {
        # do something
  }
  $cn = $pa->complete('240605568_D<<681020_<070510_<_');
  # $cn = '2406055684D<<6810203<0705109<6'
  $cd = $pa->checkdigit('2406055684D<<6810203<0705109<6');
  # $cd = '6'
  $bn = $pa->basenumber('2406055684D<<6810203<0705109<6');
  # $bn = '240605568_D<<681020_<070510_<_'

ALGORITHM

1.
Beginning left all digits are weighted with 7,3,1,7,3,1,...
2.
The sum of those products is computed.
3.
The checksum is the last digit of the sum from step 2 (modulo 10).
4.
Step 1 to 3 is performed for every part of the number and for all 3 parts including the particular checkdigit to compute the total checksum.

METHODS

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,

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.

Returns the basenumber of $number if $number has a valid check digit.

Return '' otherwise.

Returns the checkdigit of $number if $number has a valid check digit.

Return '' otherwise.

EXPORT

None by default.

Mathias Weidner, <mathias@weidner.in-bad-schmiedeberg.de>

Aaron W. West pointed me to a fault in the computing of the check digit.

perl, CheckDigits, www.pruefziffernberechnung.de, www.export911.com/e911/coding/upcChar.htm, www.adams1.com/pub/russadam/upccode.html, http://www.upcdatabase.com.

2021-01-03 perl v5.32.0