Provided by: libalgorithm-checkdigits-perl_0.50-1_all bug

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
           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

   EXPORT
       None by default.

SEE ALSO

       perl, www.pruefziffernberechnung.de.

AUTHOR

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

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-2006 by Mathias Weidner

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.