The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


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


  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;


  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;


Currency conversion module using'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 For further details please read the Terms and Conditions available at




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.


Returns a plain array of the currencies available for conversion.


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

                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.


Converts some currency value into another using's UCC.

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

    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:

Returns a (hopefully) meaningful error string.

TERMS OF USE 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, 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

The full legal document is available at


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.


HTML::TokeParser, WWW::Mechanize


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, <>
  for Miss Barbell Productions <>.


  Copyright © 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.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 400:

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