The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Business::IBAN::Util - Helpers for the IBAN 97-test.

SYNOPSIS

    #! /usr/bin/perl -w
    use v5.14.0; # strict + feature

    use Business::IBAN::Util qw( numify_iban mod97 );

    print "IBAN: "; chomp(my $iban = <>);
    my $as_num = numify_iban($iban);
    my ($old_check) = $as_num =~ s{ (..) $}{00}x;
    my $rest = mod97($as_num);
    my $new_check = 98 - $rest;
    if ($old_check != $new_check) {
        my $new_iban = $iban; substr($new_iban, 2, 2, sprintf("%02u", $new_check));
        say "Checksum not ok, should be $new_check: $new_iban"
    }
    else {
        say "Checksum ok: $iban";
    }

DESCRIPTION

These are helper functions to execute the 97-check on IBANs.

numify_iban($iban)

Put the first four characters at the end of the string. Transform all letters into numbers ([Aa] => 10 .. [Zz] => 35). This results in a string of digits [0-9] that will be used as a number for the 97-check.

mod97($number)

Returns the remainder of division by 97 (for a valid IBAN that should be 1).

COPYRIGHT

© MMXIII - Abe Timmerman <abeltje@cpan.org>

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.