Algorithm::CheckDigits - Perl extension to generate and test check
digits
perl -MAlgorithm::CheckDigits -e Algorithm::CheckDigits::print_methods
or
use Algorithm::CheckDigits;
@ml = Algorithm::CheckDigits->method_list();
$isbn = CheckDigits('ISBN');
if ($isbn->is_valid('3-930673-48-7')) {
# do something
}
$cn = $isbn->complete('3-930673-48'); # $cn = '3-930673-48-7'
$cd = $isbn->checkdigit('3-930673-48-7'); # $cd = '7'
$bn = $isbn->basenumber('3-930673-48-7'); # $bn = '3-930673-48'
This module provides a number of methods to test and generate
check digits. For more information have a look at the web site
www.pruefziffernberechnung.de (german).
Returns an object of an appropriate Algorithm::CheckDigits class
for the given algorithm.
Dies with an error message if called with an unknown
algorithm.
See below for the available algorithms. Every object understands
the following methods:
- is_valid($number)
- Returns true or false if $number contains/contains
no valid check digit.
- complete($number)
- Returns a string representation of $number
completed with the appropriate check digit.
- checkdigit($number)
- Extracts the check digit from $number if
$number contains a valid check digit.
- basenumber($number)
- Extracts the basenumber from $number if
$number contains a valid check digit.
Algorithm::CheckDigits::method_list()
Returns a list of known methods for check digit computation.
Algorithm::CheckDigits::print_methods()
Returns a list of known methods for check digit computation.
You may use the following to find out which methods your version
of Algorithm::CheckDigits provides and where to look for further
information.
perl -MAlgorithm::CheckDigits -e Algorithm::CheckDigits::print_methods
CHECK SUM METHODS
At the moment these methods to compute check digits are provided:
(vatrn - VAT Return Number, in german ustid UmsatzSTeuer-ID)
- m07-001
- See Algorithm::CheckDigits::M07_001.
- euronote,
m09-001
- European bank notes, see Algorithm::CheckDigits::M09_001.
- amex, bahncard, diners,
discover, enroute, eurocard, happydigits, isin, jcb, klubkarstadt,
mastercard, miles&more, visa, m09-001, imei, imeisv
- See Algorithm::CheckDigits::M10_001.
- siren, siret,
m10-002
- See Algorithm::CheckDigits::M10_002.
- ismn, m10-003
- See Algorithm::CheckDigits::M10_003.
- ean, iln, isbn13, nve, 2aus5,
m10-004
- See Algorithm::CheckDigits::M10_004.
- identcode_dp,
leitcode_dp, m10-005
- See Algorithm::CheckDigits::M10_005.
- rentenversicherung,
m10-006
- See Algorithm::CheckDigits::M10_006.
- sedol, m10-008
- See Algorithm::CheckDigits::M10_008.
- betriebsnummer,
m10-009
- See Algorithm::CheckDigits::M10_009.
- postscheckkonti,
m10-010
- See Algorithm::CheckDigits::M10_010.
- ups, m10-011
- See Algorithm::CheckDigits::M10_011.
- hkid, isbn, issn, nhs_gb,
ustid_pt, vat_sl, wagonnr_br, m11-001
- See Algorithm::CheckDigits::M11_001.
- pzn, m11-002
- See Algorithm::CheckDigits::M11_002.
- pkz, m11-003
- See Algorithm::CheckDigits::M11_003.
- cpf, titulo_eleitor,
m11-004
- See Algorithm::CheckDigits::M11_004.
- ccc_es, m11-006
- See Algorithm::CheckDigits::M11_006.
- ustid_fi, vatrn_fi,
m11-007
- See Algorithm::CheckDigits::M11_007.
- ustid_dk, vatrn_dk,
m11-008
- See Algorithm::CheckDigits::M11_008.
- nric_sg,
m11-009
- See Algorithm::CheckDigits::M11_009.
- ahv_ch, m11-010
- See Algorithm::CheckDigits::M11_010.
- ustid_nl, vatrn_nl,
m11-011
- See Algorithm::CheckDigits::M11_011.
- bwpk_de,
m11-012
- See Algorithm::CheckDigits::M11_012.
- ustid_gr, vatrn_gr,
m11-013
- See Algorithm::CheckDigits::M11_013.
- esr5_ch,
m11-015
- See Algorithm::CheckDigits::M11_015.
- ustid_pl, vatrn_pl,
m11-016
- See Algorithm::CheckDigits::M11_016.
- ecno, ec-no, einecs, elincs,
m11-017
- See Algorithm::CheckDigits::M11_017.
- isan, m16-001
- See Algorithm::CheckDigits::M16_001.
- dni_es, m23-001
- See Algorithm::CheckDigits::M23_001.
- ustid_ie, vatrn_ie,
m23-002
- See Algorithm::CheckDigits::M23_002.
- code_39,
m43-001
- See Algorithm::CheckDigits::M43_001.
- ustid_lu, vatrn_lu,
m89-001
- See Algorithm::CheckDigits::M89_001.
- ustid_be, vatrn_be,
m97-001
- See Algorithm::CheckDigits::M97_001.
- iban, m97-002
- See Algorithm::CheckDigits::M97_002.
- upc, mbase-001
- See Algorithm::CheckDigits::MBase_001.
- blutbeutel,
bzue_de, ustid_de, vatrn_de, mbase-002
- See Algorithm::CheckDigits::MBase_002.
- sici, mbase-003
- See Algorithm::CheckDigits::MBase_003.
- pa_de, mxx-001
- See Algorithm::CheckDigits::MXX_001.
- cas, mxx-002
- See Algorithm::CheckDigits::MXX_002.
- dem, mxx-003
- Old german bank notes (DEM), see Algorithm::CheckDigits::MXX_003.
- ustid_at, vatrn_at,
mxx-004
- See Algorithm::CheckDigits::MXX_004.
- esr9_ch,
mxx-005
- See Algorithm::CheckDigits::MXX_005.
- verhoeff,
mxx-006
- Verhoeff scheme, see Algorithm::CheckDigits::MXX_006 or
Algorithm::Verhoeff
perl, www.pruefziffernberechnung.de.
Mathias Weidner,
<mathias@weidner.in-bad-schmiedeberg.de>
Petri Oksanen made me aware that CheckDigits('IMEI') would invoke
no test at all since there was no entry for this in the methods hash.
Copyright 2004-2006 by Mathias Weidner
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.