NAME

Business::CUSIP - Verify Committee on Uniform Security Identification Procedures Numbers

SYNOPSIS

use Business::CUSIP;
$csp = Business::CUSIP->new('035231AH2');
print "Looks good.\n" if $csp->is_valid;

$csp = Business::CUSIP->new('392690QT', 1);
$chk = $csp->check_digit;
$csp->cusip($csp->cusip.$chk);
print $csp->is_valid ? "Looks good." : "Invalid: ", $Business::CUSIP::ERROR, "\n";

DESCRIPTION

This module verifies CUSIPs, which are financial identifiers issued by the Standard & Poor's Company for US and Canadian securities. This module cannot tell if a CUSIP references a real security, but it can tell you if the given CUSIP is properly formatted.

METHODS

new([CUSIP_NUMBER[, IS_FIXED_INCOME]])

The new constructor takes two optional arguments: the CUSIP number and a Boolean value signifying whether this CUSIP refers to a fixed income security. CUSIPs for fixed income securities are validated a little differently than other CUSIPs.

cusip([CUSIP_NUMBER])

If no argument is given to this method, it will return the current CUSIP number. If an argument is provided, it will set the CUSIP number and then return the CUSIP number.

is_fixed_income([TRUE_OR_FALSE])

If no argument is given to this method, it will return whether the CUSIP object is marked as a fixed income security. If an argument is provided, it will set the fixed income property and then return the fixed income setting.

issuer_num()

Returns the issuer number from the CUSIP number.

issue_num()

Returns the issue number from the CUSIP number.

is_valid()

Returns true if the checksum of the CUSIP is correct otherwise it returns false and $Business::CUSIP::ERROR will contain a description of the problem.

error()

If the CUSIP object is not valid (! is_valid()) it returns the reason it is not valid. Otherwise returns undef.

check_digit()

This method returns the checksum of the given object. If the CUSIP number of the object contains a check_digit, it is ignored. In other words this method recalculates the check_digit each time.

CAVEATS

This module uses the Algorithm::LUHN module and it adds characters to the valid_chars map of Algorithm::LUHN. So if you rely on the default valid map in the same program you use Business::CUSIP you might be surprised.

AUTHOR

This module was written by Tim Ayers (http://search.cpan.org/search?author=TAYERS).

COPYRIGHT

Copyright (c) 2001 Tim Ayers. All rights reserved.

LICENSE

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

SEE ALSO

General CUSIP information may be found at http://www.cusip.com.