Finance::Currency::Convert::XE(3p)

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 '&#164;'. 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 '&#163;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
HTML::TokeParser, WWW::Mechanize

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 <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 X 2002-2011 Barbie for Miss Barbell Productions.

  This module is free software; you can redistribute it and/or
  modify it under the Artistic Licence v2.