Algorithm-CheckDigits
view release on metacpan or search on metacpan
lib/Algorithm/CheckDigits/M11_004.pm view on Meta::CPAN
};
$sum %= 11;
return 0 if (2 > $sum);
return 11 - $sum;
};
return -1 unless ($number =~ /^[-\d.]+$/);
$number =~ s/[-.]//g;
if ('cpf' eq $self->{type}) {
return -1 unless length($number) == 9;
$cd1 = $calc_cd->($number,10);
$cd2 = $calc_cd->($number . $cd1,11);
} elsif ('titulo_eleitor' eq $self->{type}) {
$number = substr("00000000000" . $number, -10);
$cd1 = $calc_cd->(substr($number,0,8),9);
$cd2 = $calc_cd->(substr($number,-2) . $cd1,4);
}
return $cd1 . $cd2;
} # _compute_checkdigit()
lib/Algorithm/CheckDigits/M43_001.pm view on Meta::CPAN
return '';
} # checkdigit()
sub _compute_checkdigit {
my $self = shift;
my $number = shift;
my $sum = 0;
my @digits = split(//,$number);
for (my $i = 0; $i < length($number); $i++) {
$sum += $keytable{$digits[$i]};
}
$sum %= 43;
return $keymap{$sum};
} # _compute_checkdigit()
# Preloaded methods go here.
1;
__END__
( run in 0.499 second using v1.01-cache-2.11-cpan-65fba6d93b7 )