Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

Manual Reference Pages  -  ALGORITHM::CHECKDIGITS::M11_009 (3)

.ds Aq ’

NAME

CheckDigits::M11_009 - compute check digits NRIC (SG)

SYNOPSIS

```

use Algorithm::CheckDigits;

\$nric = CheckDigits(nric_sg);

if (\$nric->is_valid(S1234567D)) {
# do something
}

\$cn = \$nric->complete(S1234567);
# \$cn = S1234567D

\$cd = \$nric->checkdigit(S1234567D);
# \$cd = D

\$bn = \$nric->basenumber(S1234567D);
# \$bn = S1234567;

```

DESCRIPTION

ALGORITHM

 1. Beginning left every digit is weighted with 2, 7, 6, 5, 4, 3, 2 2. The weighted digits are added. 3. The sum from step 2 is taken modulo 11. 4. The checkdigit is 11 minus the sum from step 3 converted to a character according to the following table: ``` @cd = (,A,B,C,D,E,F,G,H,I,Z,J, ); ```

METHODS

 is_valid(\$number) Returns true only if \$number consists of seven digits (optional preceded by a letter out of ’F’, ’G’, ’S’, ’T’) followed by a valid letter according to the algorithm given above. Returns false otherwise, complete(\$number) The check letter for \$number is computed and appended to the end of \$number. Returns the complete number with check digit or ’’ if \$number does not consist solely of digits and letters. basenumber(\$number) Returns the basenumber of \$number if \$number has a valid check digit. Return ’’ otherwise. checkdigit(\$number) Returns ’’ if \$number is valid. Return undef otherwise.

None by default.

AUTHOR

Mathias Weidner, <mamawe@cpan.org>