| Business-ISIN documentation | view source | Contained in the Business-ISIN distribution. |
Business::ISIN - validate International Securities Identification Numbers
0.20
use Business::ISIN;
my $isin = new Business::ISIN 'US459056DG91';
if ( $isin->is_valid ) {
print "$isin is valid!\n";
# or: print $isin->get() . " is valid!\n";
} else {
print "Invalid ISIN: " . $isin->error() . "\n";
print "The check digit I was expecting is ";
print Business::ISIN::check_digit('US459056DG9') . "\n";
}
Perl5, Locale::Country, Carp
Business::ISIN is a class which validates ISINs (International Securities
Identification Numbers), the codes which identify shares in much the same
way as ISBNs identify books. An ISIN consists of two letters, identifying
the country of origin of the security according to ISO 3166, followed by
nine characters in [A-Z0-9], followed by a decimal check digit.
The new() method constructs a new ISIN object. If you give it a scalar
argument, it will use the argument to initialize the object's value. Here,
no attempt will be made to check that the argument is valid.
The set() method sets the ISIN's value to a scalar argument which you
give. Here, no attempt will be made to check that the argument is valid.
The method returns the object, to allow you to do things like
$isin->set("GB0004005475")->is_valid.
The get() method returns a string, which will be the ISIN's value if it
is syntactically valid, and undef otherwise. Interpolating the object
reference in double quotes has the same effect (see the synopsis).
The is_valid() method returns true if the object contains a syntactically
valid ISIN. (Note: this does not guarantee that a security actually
exists which has that ISIN.) It will return false otherwise.
If an object does contain an invalid ISIN, then the error() method will
return a string explaining what is wrong, like any of the following:
Otherwise, error() will return undef.
check_digit() is an ordinary subroutine and not a class method. It
takes a string of the first eleven characters of an ISIN as an argument (e.g.
"US459056DG9"), and returns the corresponding check digit, calculated using
the so-called 'double-add-double' algorithm.
check_digit() will croak with the message 'Invalid data' if you pass it
an unsuitable argument.
Thanks to Peter Dintelmann (Peter.Dintelmann@Dresdner-Bank.com) and Tim Ayers (tim.ayers@reuters.com) for suggestions and help debugging this module.
David Chan <david@sheetmusic.org.uk>
Copyright (C) 2002, David Chan. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Business-ISIN documentation | view source | Contained in the Business-ISIN distribution. |