Algori...M11_016(3pm)

πŸ“¦
version 1.3.6 Β· 5 versions
, in ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– Algori...M11_016(3pm) β€” CheckDigits::M11_016 πŸ’–

okay bestie, this is a page from the User Contributed Perl Documentation, filed under the very iconic name Algori...M11_016(3pm) (yes the dots are literally part of it, the terminal is just being shy about the full module name 🫢). Let's get into it.


✨ NAME ✨

CheckDigits::M11_016 β€” compute check digits vor VAT Registration Number (PL)

yup, "vor" β€” that's the original's little typo moment and we're keeping it, no cap, it's part of the lore πŸ’…


🌸 SYNOPSIS 🌸

use Algorithm::CheckDigits;

$nip = CheckDigits('nip');

if ($nip->is_valid('8567346215')) {
      # do something
}

$cn = $nip->complete('856734621');
# $cn = '8567346215'

$cd = $nip->checkdigit('856734621');
# $cd = '5'

$bn = $nip->basenumber('8567346215');
# $bn = '856734621';

see how tidy that is?? the whole vibe is: hand it a number, it tells you if it's valid, or it hands you back the completed / base / check-digit version. so satisfying fr fr ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

πŸ‘‘ ALGORITHM πŸ‘‘

okay so here's the whole recipe, step by step, no gatekeeping:

  1. Beginning left every digit is weighted with 6, 5, 7, 2, 3, 4, 5, 6, 7
  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. Is the difference 10, the number won't be taken. If the difference is 11, the checkdigit is 0.
heads up bestie: if step 4 lands you on a difference of 10, that number just won't be taken β€” it's not a valid one, periodt. and if the difference is 11, the checkdigit is 0, not 11. those two are the little gotchas, don't let them catch you slipping 😭

πŸŽ€ METHODS πŸŽ€

is_valid($number)

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

Returns false otherwise,

that trailing comma at the end?? we love her, she stays 🌈

complete($number)

The check digit 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, hyphens and spaces.

basenumber($number)

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

Return '' otherwise.

checkdigit($number)

Returns the check digits of $number if $number has valid check digits.

Return '' otherwise.

the way each of these just quietly hands you '' when it's not feeling it… so real, so unbothered πŸ’€

🌈 EXPORT 🌈

None by default.

literally nothing. she gives you nothing by default and expects you to respect it πŸ’…


πŸ’œ AUTHOR πŸ’œ

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

shoutout to Mathias, absolute icon, ate and left no crumbs πŸ‘‘


⭐ SEE ALSO ⭐

like, trilingual documentation?? highkey main character energy 🌍✨


and that's the whole page bestie!! πŸŽ€ this lil beauty is from perl v5.36.0, dated 2022-10-13, and yeah she still says Algori...M11_016(3pm) at the bottom too because the terminal just truncates like that. go forth and validate those Polish VAT numbers, iykyk πŸ’–πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from