Algorithm-CheckDigits

 view release on metacpan or  search on metacpan

lib/Algorithm/CheckDigits/M11_003.pm  view on Meta::CPAN


  $pkz = CheckDigits('pkz');

  if ($pkz->is_valid('150765400354')) {
	# do something
  }

  $cn = $pkz->complete('15076540035');
  # $cn = '150765400354'

  $cd = $pkz->checkdigit('150765400354');
  # $cd = '4'

  $bn = $pkz->basenumber('150765400354');
  # $bn = '150765400354'
  
=head1 DESCRIPTION

=head2 ALGORITHM

=over 4

=item 1

The checkdigit is set to 0.

=item 2

From right to left the digits are weighted (multiplied) with
2,4,8,5,10,9,7,3,6,1,2,4.

=item 3

The products are added.

=item 4

The sum of step 3 is taken modulo 11.

=item 5

The value of step 4 is added to a multiple (0..9) of the weight of the
checkdigit (2).

=item 6

The sum of step 5 is taken modulo 11.

=item 7

The checkdigit is the multiple of the weight of the checkdigit where
the value of step 6 equals 10.

=item 8

If there can't be reached a value of 10 in step 6, the number cannot
be taken as a PKZ.

=back

To validate a PKZ apply steps 2 to 4 to the complete number.

=head2 METHODS

=over 4

=item is_valid($number)

Returns true only if C<$number> consists solely of numbers and the last digit
is a valid check digit according to the algorithm given above.

Returns false otherwise,

=item complete($number)

The check digit for C<$number> is computed and concatenated to the end
of C<$number>.

Returns the complete number with check digit or '' if C<$number>
does not consist solely of digits and spaces.

=item basenumber($number)

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

Return '' otherwise.

=item checkdigit($number)

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

Return '' otherwise.

=back

=head2 EXPORT

None by default.

=head1 AUTHOR

Mathias Weidner, C<< <mamawe@cpan.org> >>

=head1 SEE ALSO

L<perl>,
L<CheckDigits>,
F<www.pruefziffernberechnung.de>.

=cut



( run in 0.522 second using v1.01-cache-2.11-cpan-fa01517f264 )