Locale::Currency(3pm) Perl Programmers Reference Guide Locale::Currency(3pm)
Locale::Currency - ISO three letter codes for currency identification (ISO 4217)
$curr = code2currency('usd'); # $curr gets 'US Dollar'
$code = currency2code('Euro'); # $code gets 'eur'
@codes = all_currency_codes();
@names = all_currency_names();
The "Locale::Currency" module provides access to the ISO three-letter codes for identify-
ing currencies and funds, as defined in ISO 4217. You can either access the codes via the
"conversion routines" (described below), or with the two functions which return lists of
all currency codes or all currency names.
There are two special codes defined by the standard which aren't understood by this mod-
XTS Specifically reserved for testing purposes.
XXX For transactions where no currency is involved.
There are two conversion routines: "code2currency()" and "currency2code()".
This function takes a three letter currency code and returns a string which contains
the name of the currency identified. If the code is not a valid currency code, as
defined by ISO 4217, then "undef" will be returned.
$curr = code2currency($code);
This function takes a currency name and returns the corresponding three letter cur-
rency code, if such exists. If the argument could not be identified as a currency
name, then "undef" will be returned.
$code = currency2code('French Franc');
The case of the currency name is not important. See the section "KNOWN BUGS AND LIMI-
There are two function which can be used to obtain a list of all currency codes, or all
Returns a list of all three-letter currency codes. The codes are guaranteed to be all
lower-case, and not in any particular order.
Returns a list of all currency names for which there is a corresponding three-letter
currency code. The names are capitalised, and not returned in any particular order.
The following example illustrates use of the "code2currency()" function. The user is
prompted for a currency code, and then told the corresponding currency name:
$| = 1; # turn off buffering
print "Enter currency code: ";
chop($code = <STDIN>);
$curr = code2currency($code);
if (defined $curr)
print "$code = $curr\n";
print "'$code' is not a valid currency code!\n";
KNOWN BUGS AND LIMITATIONS
o In the current implementation, all data is read in when the module is loaded, and then
held in memory. A lazy implementation would be more memory friendly.
o This module also includes the special codes which are not for a currency, such as
Gold, Platinum, etc. This might cause a problem if you're using this module to dis-
play a list of currencies. Let Neil know if this does cause a problem, and we can do
something about it.
o ISO 4217 also defines a numeric code for each currency. Currency codes are not cur-
rently supported by this module, in the same way Locale::Country supports multiple
o There are three cases where there is more than one code for the same currency name.
Kwacha has two codes: mwk for Malawi, and zmk for Zambia. The Russian Ruble has two
codes: rub and rur. The Belarussian Ruble has two codes: byr and byb. The cur-
rency2code() function only returns one code, so you might not get back the code you
ISO codes for identification of country (ISO 3166).
ISO codes for identification of written scripts (ISO 15924).
Code for the representation of currencies and funds.
Official web page for the ISO 4217 maintenance agency. This has the latest list of
codes, in MS Word format. Boo.
Michael Hennecke <email@example.com> and Neil Bowers <firstname.lastname@example.org>
Copyright (C) 2002, Neil Bowers.
Copyright (c) 2001 Michael Hennecke and Canon Research Centre Europe (CRE).
This module is free software; you can redistribute it and/or modify it under the same
terms as Perl itself.
perl v5.8.0 2002-06-01 Locale::Currency(3pm)