print validate("5276 4400 6542 1319"); print cardtype("5276 4400 6542 1319"); print generate_last_digit("5276 4400 6542 131");
Business::CreditCard is available at a CPAN site near you.
These subroutines tell you whether a credit card number is self-consistent -- whether the last digit of the number is a valid checksum for the preceding digits.
This module does not tell you whether the number is on an actual card, only whether it might conceivably be on a real card. To verify whether a card is real, or whether it's been stolen, or what its balance is, you need a Merchant ID, which gives you access to credit card databases. The Perl Journal (http://tpj.com/tpj) has a Merchant ID so that I can accept MasterCard and VISA payments; it comes with the little pushbutton/slide-your-card-through device you've seen in restaurants and stores. That device calculates the checksum for you, so I don't actually use this module.
These subroutines will also work if you provide the arguments
as numbers instead of strings, e.g.
To install this module, change directories to wherever
your system keeps Perl modules (e.g.
The Perl Journal and MIT Media Lab