NAME

Finance::Currency::Convert::XE - Currency conversion module.

SYNOPSIS

use Finance::Currency::Convert::XE;
my $obj = Finance::Currency::Convert::XE->new()
              || die "Failed to create object\n" ;

my $value = $obj->convert(
                  'source' => 'GBP',
                  'target' => 'EUR',
                  'value' => '123.45',
                  'format' => 'text'
          )   || die "Could not convert: " . $obj->error . "\n";

my @currencies = $obj->currencies;

or

use Finance::Currency::Convert::XE;
my $obj = Finance::Currency::Convert::XE->new(
                  'source' => 'GBP',
                  'target' => 'EUR',
                  'format' => 'text'
          )   || die "Failed to create object\n" ;

my $value = $obj->convert(
                  'value' => '123.45',
                  'format' => 'abbv'
         )   || die "Could not convert: " . $obj->error . "\n";

$value = $obj->convert('123.45')
              || die "Could not convert: " . $obj->error . "\n";

my @currencies = $obj->currencies;

DESCRIPTION

Currency conversion module using XE.com's Universal Currency Converter (tm) site.

WARNING: Do not use this module for any commercial purposes, unless you have obtain an explicit license to use the service provided by XE.com. For further details please read the Terms and Conditions available at http://www.xe.com.

  • http://www.xe.com/errors/noautoextract.htm

METHODS

new

Creates a new Finance::Currency::Convert::XE object. Can be supplied with default values for source and target currency, and the format required of the output. These can be overridden in the convert() method.

currencies

Returns a plain array of the currencies available for conversion.

add_currencies

Allows the user to add currencies to the internal hash. Currencies can be added as per the code below:

$self->add_currencies(
                ZZZ => {text => 'An Example', symbol => '$'},
                ZZY => {text => 'Testing'} );

Note that unless otherwise stated, the symbol will be set to '¤'. The code used must be 3 characters in length, and a text part must be included.

convert

Converts some currency value into another using XE.com's UCC.

An anonymous hash is used to pass parameters. Legal hash keys and values are as follows:

convert(
  source => $currency_from,
  target => $currency_to,
  value  => $currency_from_value,
  format => $print_format
);

The format key is optional, and takes one of the following strings:

'number' (returns '12.34')
'symbol' (returns '£12.34')
'text'   (returns '12.34 Great Britain, Pound')
'abbv'   (returns '12.34 GBP')

If format key is omitted, 'number' is assumed and the converted value is returned.

If only a value is passed, it is assumed that this is the value to be converted and the remaining parameters will be defined by the defaults set in the constructor. Note that no internal defaults are assumed.

Note that not all countries have symbols in the standard character set. Where known the appropriate currency symbol is used, otherwise the generic currency symbol is used.

It should also be noted that there is a recommendation to use only the standardised three letter abbreviation ('abbv' above). However, for further reading please see:

http://www.jhall.demon.co.uk/currency/
http://www.jhall.demon.co.uk/currency/by_symbol.html
error

Returns a (hopefully) meaningful error string.

TERMS OF USE

XE.com have a Terms of Use policy that states:

This website is for informational purposes only and is not intended to
provide specific commercial, financial, investment, accounting, tax, or
legal advice. It is provided to you solely for your own personal,
non-commercial use and not for purposes of resale, distribution, public
display or performance, or any other uses by you in any form or manner
whatsoever. Unless otherwise indicated on this website, you may display,
download, archive, and print a single copy of any information on this
website, or otherwise distributed from XE.com, for such personal,
non-commercial use, provided it is done pursuant to the User Conduct and
Obligations set forth herein.

As such this software is for personal use ONLY. No liability is accepted by the author for abuse or miuse of the software herein. Use of this software is only permitted under the terms stipulated by XE.com.

The full legal document is available at http://www.xe.com/legal/

TODO

Currency symbols are currently specified with a generic symbol, if the currency symbol is unknown. Are there any other symbols available in Unicode? Let me know if there are.

SEE ALSO

WWW::Mechanize
HTML::TokeParser

SUPPORT

There are no known bugs at the time of this release. However, if you spot a bug or are experiencing difficulties that are not explained within the POD documentation, please submit a bug to the RT system (see link below). However, it would help greatly if you are able to pinpoint problems or even supply a patch.

Fixes are dependant upon their severity and my availablity. Should a fix not be forthcoming, please feel free to (politely) remind me by sending an email to barbie@cpan.org .

RT: http://rt.cpan.org/Public/Dist/Display.html?Name=Finance-Currency-Convert-XE

AUTHOR

Barbie, <barbie@cpan.org>
for Miss Barbell Productions <http://www.missbarbell.co.uk>.

COPYRIGHT

Copyright © 2002-2008 Barbie for Miss Barbell Productions.

This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself, using the Artistic License.

The full text of the licenses can be found in the Artistic file included with this distribution, or in perlartistic file as part of Perl installation, in the 5.8.1 release or later.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 399:

Non-ASCII character seen before =encoding in '©'. Assuming CP1252