Algorithm::CheckDigits - Perl extension to generate and test check digits


Algorithm-CheckDigits documentation  | view source Contained in the Algorithm-CheckDigits distribution.

Index


NAME

Top

Algorithm::CheckDigits - Perl extension to generate and test check digits

SYNOPSIS

Top

  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

Top

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

Top

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

Top

perl, www.pruefziffernberechnung.de.

BUGS AND LIMITATIONS

Top

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

Top

Mathias Weidner, mamawe@cpan.org

THANKS

Top

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

Top


Algorithm-CheckDigits documentation  | view source Contained in the Algorithm-CheckDigits distribution.