NAME
Algorithm::CheckDigits - Perl extension to generate and test check digits
SYNOPSIS
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'
ABSTRACT
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).
SUBROUTINES/METHODS
CheckDigits($method)
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
- 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
- siren, siret, m10-002
- ismn, m10-003
- ean, iln, isbn13, nve, 2aus5, m10-004
- identcode_dp, leitcode_dp, m10-005
- rentenversicherung, m10-006
- sedol, m10-008
- betriebsnummer, m10-009
- postscheckkonti, m10-010
- ups, m10-011
- hkid, isbn, issn, nhs_gb, ustid_pt, vat_sl, wagonnr_br, m11-001
- pzn, m11-002
- pkz, m11-003
- cpf, titulo_eleitor, m11-004
- ccc_es, m11-006
- ustid_fi, vatrn_fi, m11-007
- ustid_dk, vatrn_dk, m11-008
- nric_sg, m11-009
- ahv_ch, m11-010
- ustid_nl, vatrn_nl, m11-011
- bwpk_de, m11-012
- ustid_gr, vatrn_gr, m11-013
- esr5_ch, m11-015
- ustid_pl, vatrn_pl, m11-016
- ecno, ec-no, einecs, elincs, m11-017
- isan, m16-001
- dni_es, m23-001
- ustid_ie, vatrn_ie, m23-002
- code_39, m43-001
- ustid_lu, vatrn_lu, m89-001
- ustid_be, vatrn_be, m97-001
- iban, m97-002
- upc, mbase-001
- blutbeutel, bzue_de, ustid_de, vatrn_de, mbase-002
- sici, mbase-003
- pa_de, mxx-001
- cas, mxx-002
- dem, mxx-003
-
Old german bank notes (DEM), see Algorithm::CheckDigits::MXX_003.
- ustid_at, vatrn_at, mxx-004
- esr9_ch, mxx-005
- verhoeff, mxx-006
-
Verhoeff scheme, see Algorithm::CheckDigits::MXX_006 or Algorithm::Verhoeff
EXPORT
None by default.
SEE ALSO
perl, www.pruefziffernberechnung.de.
BUGS AND LIMITATIONS
Please report any bugs or feature requests to bug-algorithm-checkdigits@rt.cpan.org
, or through the web interface at http://rt.cpan.org.
AUTHOR
Mathias Weidner, mamawe@cpan.org
THANKS
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 AND LICENSE
Copyright 2004-2010 by Mathias Weidner
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.