Currency.pod revision 1
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=head1 NAME
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyLocale::Currency - ISO three letter codes for currency identification (ISO 4217)
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=head1 SYNOPSIS
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey use Locale::Currency;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey $curr = code2currency('usd'); # $curr gets 'US Dollar'
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey $code = currency2code('Euro'); # $code gets 'eur'
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey @codes = all_currency_codes();
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey @names = all_currency_names();
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=head1 DESCRIPTION
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThe C<Locale::Currency> module provides access to the ISO three-letter
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeycodes for identifying currencies and funds, as defined in ISO 4217.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyYou can either access the codes via the L<conversion routines>
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey(described below),
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyor with the two functions which return lists of all currency codes or
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyall currency names.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThere are two special codes defined by the standard which aren't
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyunderstood by this module:
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=over 4
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item XTS
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeySpecifically reserved for testing purposes.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item XXX
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyFor transactions where no currency is involved.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=back
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=head1 CONVERSION ROUTINES
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThere are two conversion routines: C<code2currency()> and C<currency2code()>.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=over 4
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item code2currency()
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThis function takes a three letter currency code and returns a string
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeywhich contains the name of the currency identified. If the code is
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeynot a valid currency code, as defined by ISO 4217, then C<undef>
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeywill be returned.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey $curr = code2currency($code);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item currency2code()
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThis function takes a currency name and returns the corresponding
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeythree letter currency code, if such exists.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyIf the argument could not be identified as a currency name,
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeythen C<undef> will be returned.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey $code = currency2code('French Franc');
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThe case of the currency name is not important.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeySee the section L<KNOWN BUGS AND LIMITATIONS> below.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=back
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=head1 QUERY ROUTINES
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThere are two function which can be used to obtain a list of all
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeycurrency codes, or all currency names:
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=over 4
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item C<all_currency_codes()>
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyReturns a list of all three-letter currency codes.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThe codes are guaranteed to be all lower-case,
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyand not in any particular order.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item C<all_currency_names()>
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyReturns a list of all currency names for which there is a corresponding
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeythree-letter currency code. The names are capitalised, and not returned
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyin any particular order.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=back
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=head1 EXAMPLES
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThe following example illustrates use of the C<code2currency()> function.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThe user is prompted for a currency code, and then told the corresponding
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeycurrency name:
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey $| = 1; # turn off buffering
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey print "Enter currency code: ";
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey chop($code = <STDIN>);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey $curr = code2currency($code);
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey if (defined $curr)
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey {
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey print "$code = $curr\n";
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey }
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey else
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey {
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey print "'$code' is not a valid currency code!\n";
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey }
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=head1 KNOWN BUGS AND LIMITATIONS
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=over 4
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyIn the current implementation, all data is read in when the
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeymodule is loaded, and then held in memory.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyA lazy implementation would be more memory friendly.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThis module also includes the special codes which are
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeynot for a currency, such as Gold, Platinum, etc.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThis might cause a problem if you're using this module
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyto display a list of currencies.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyLet Neil know if this does cause a problem, and we can
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeydo something about it.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyISO 4217 also defines a numeric code for each currency.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyCurrency codes are not currently supported by this module,
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyin the same way Locale::Country supports multiple codesets.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThere are three cases where there is more than one
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeycode for the same currency name.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyKwacha has two codes: mwk for Malawi, and zmk for Zambia.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThe Russian Ruble has two codes: rub and rur.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThe Belarussian Ruble has two codes: byr and byb.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyThe currency2code() function only returns one code, so
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyyou might not get back the code you expected.
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=back
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=head1 SEE ALSO
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=over 4
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item Locale::Country
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. MaskeyISO codes for identification of country (ISO 3166).
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey=item Locale::Script
ISO codes for identification of written scripts (ISO 15924).
=item ISO 4217:1995
Code for the representation of currencies and funds.
=item http://www.bsi-global.com/iso4217currency
Official web page for the ISO 4217 maintenance agency.
This has the latest list of codes, in MS Word format. Boo.
=back
=head1 AUTHOR
Michael Hennecke E<lt>hennecke@rz.uni-karlsruhe.deE<gt>
and
Neil Bowers E<lt>neil@bowers.comE<gt>
=head1 COPYRIGHT
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.
=cut