1 | #
|
---|
2 | # Locale::Currency - ISO three letter codes for currency identification
|
---|
3 | # (ISO 4217)
|
---|
4 | #
|
---|
5 | # $Id: Currency.pm,v 2.7 2004/06/10 21:19:34 neilb Exp $
|
---|
6 | #
|
---|
7 |
|
---|
8 | package Locale::Currency;
|
---|
9 | use strict;
|
---|
10 | require 5.002;
|
---|
11 |
|
---|
12 | require Exporter;
|
---|
13 |
|
---|
14 | #-----------------------------------------------------------------------
|
---|
15 | # Public Global Variables
|
---|
16 | #-----------------------------------------------------------------------
|
---|
17 | use vars qw($VERSION @ISA @EXPORT);
|
---|
18 | $VERSION = sprintf("%d.%02d", q$Revision: 2.7 $ =~ /(\d+)\.(\d+)/);
|
---|
19 | @ISA = qw(Exporter);
|
---|
20 | @EXPORT = qw(&code2currency ¤cy2code
|
---|
21 | &all_currency_codes &all_currency_names );
|
---|
22 |
|
---|
23 | #-----------------------------------------------------------------------
|
---|
24 | # Private Global Variables
|
---|
25 | #-----------------------------------------------------------------------
|
---|
26 | my %CODES = ();
|
---|
27 | my %CURRENCIES = ();
|
---|
28 |
|
---|
29 |
|
---|
30 | #=======================================================================
|
---|
31 | #
|
---|
32 | # code2currency( CODE )
|
---|
33 | #
|
---|
34 | #=======================================================================
|
---|
35 | sub code2currency
|
---|
36 | {
|
---|
37 | my $code = shift;
|
---|
38 |
|
---|
39 |
|
---|
40 | return undef unless defined $code;
|
---|
41 | $code = lc($code);
|
---|
42 | if (exists $CODES{$code})
|
---|
43 | {
|
---|
44 | return $CODES{$code};
|
---|
45 | }
|
---|
46 | else
|
---|
47 | {
|
---|
48 | #---------------------------------------------------------------
|
---|
49 | # no such currency code!
|
---|
50 | #---------------------------------------------------------------
|
---|
51 | return undef;
|
---|
52 | }
|
---|
53 | }
|
---|
54 |
|
---|
55 |
|
---|
56 | #=======================================================================
|
---|
57 | #
|
---|
58 | # currency2code ( CURRENCY )
|
---|
59 | #
|
---|
60 | #=======================================================================
|
---|
61 | sub currency2code
|
---|
62 | {
|
---|
63 | my $curr = shift;
|
---|
64 |
|
---|
65 |
|
---|
66 | return undef unless defined $curr;
|
---|
67 | $curr = lc($curr);
|
---|
68 | if (exists $CURRENCIES{$curr})
|
---|
69 | {
|
---|
70 | return $CURRENCIES{$curr};
|
---|
71 | }
|
---|
72 | else
|
---|
73 | {
|
---|
74 | #---------------------------------------------------------------
|
---|
75 | # no such currency!
|
---|
76 | #---------------------------------------------------------------
|
---|
77 | return undef;
|
---|
78 | }
|
---|
79 | }
|
---|
80 |
|
---|
81 |
|
---|
82 | #=======================================================================
|
---|
83 | #
|
---|
84 | # all_currency_codes()
|
---|
85 | #
|
---|
86 | #=======================================================================
|
---|
87 | sub all_currency_codes
|
---|
88 | {
|
---|
89 | return keys %CODES;
|
---|
90 | }
|
---|
91 |
|
---|
92 |
|
---|
93 | #=======================================================================
|
---|
94 | #
|
---|
95 | # all_currency_names()
|
---|
96 | #
|
---|
97 | #=======================================================================
|
---|
98 | sub all_currency_names
|
---|
99 | {
|
---|
100 | return values %CODES;
|
---|
101 | }
|
---|
102 |
|
---|
103 |
|
---|
104 | #=======================================================================
|
---|
105 | # initialisation code - stuff the DATA into the CODES hash
|
---|
106 | #=======================================================================
|
---|
107 | {
|
---|
108 | my $code;
|
---|
109 | my $currency;
|
---|
110 | local $_;
|
---|
111 |
|
---|
112 |
|
---|
113 | while (<DATA>)
|
---|
114 | {
|
---|
115 | next unless /\S/;
|
---|
116 | chop;
|
---|
117 | ($code, $currency) = split(/:/, $_, 2);
|
---|
118 | $CODES{$code} = $currency;
|
---|
119 | $CURRENCIES{"\L$currency"} = $code;
|
---|
120 | }
|
---|
121 |
|
---|
122 | close(DATA);
|
---|
123 | }
|
---|
124 |
|
---|
125 | 1;
|
---|
126 |
|
---|
127 | __DATA__
|
---|
128 | adp:Andorran Peseta
|
---|
129 | aed:UAE Dirham
|
---|
130 | afa:Afghani
|
---|
131 | all:Lek
|
---|
132 | amd:Armenian Dram
|
---|
133 | ang:Netherlands Antillean Guilder
|
---|
134 | aoa:Kwanza
|
---|
135 | aon:New Kwanza
|
---|
136 | aor:Kwanza Reajustado
|
---|
137 | ars:Argentine Peso
|
---|
138 | ats:Schilling
|
---|
139 | aud:Australian Dollar
|
---|
140 | awg:Aruban Guilder
|
---|
141 | azm:Azerbaijanian Manat
|
---|
142 |
|
---|
143 | bam:Convertible Marks
|
---|
144 | bbd:Barbados Dollar
|
---|
145 | bdt:Taka
|
---|
146 | bef:Belgian Franc
|
---|
147 | bgl:Lev
|
---|
148 | bgn:Bulgarian Lev
|
---|
149 | bhd:Bahraini Dinar
|
---|
150 | bhd:Dinar
|
---|
151 | bif:Burundi Franc
|
---|
152 | bmd:Bermudian Dollar
|
---|
153 | bnd:Brunei Dollar
|
---|
154 | bob:Boliviano
|
---|
155 | bov:MVDol
|
---|
156 | brl:Brazilian Real
|
---|
157 | bsd:Bahamian Dollar
|
---|
158 | btn:Ngultrum
|
---|
159 | bwp:Pula
|
---|
160 | byb:Belarussian Ruble
|
---|
161 | byr:Belarussian Ruble
|
---|
162 | bzd:Belize Dollar
|
---|
163 |
|
---|
164 | cad:Canadian Dollar
|
---|
165 | cdf:Franc Congolais
|
---|
166 | chf:Swiss Franc
|
---|
167 | clf:Unidades de Formento
|
---|
168 | clp:Chilean Peso
|
---|
169 | cny:Yuan Renminbi
|
---|
170 | cop:Colombian Peso
|
---|
171 | crc:Costa Rican Colon
|
---|
172 | cup:Cuban Peso
|
---|
173 | cve:Cape Verde Escudo
|
---|
174 | cyp:Cyprus Pound
|
---|
175 | czk:Czech Koruna
|
---|
176 |
|
---|
177 | dem:German Mark
|
---|
178 | djf:Djibouti Franc
|
---|
179 | dkk:Danish Krone
|
---|
180 | dop:Dominican Peso
|
---|
181 | dzd:Algerian Dinar
|
---|
182 |
|
---|
183 | ecs:Sucre
|
---|
184 | ecv:Unidad de Valor Constante (UVC)
|
---|
185 | eek:Kroon
|
---|
186 | egp:Egyptian Pound
|
---|
187 | ern:Nakfa
|
---|
188 | esp:Spanish Peseta
|
---|
189 | etb:Ethiopian Birr
|
---|
190 | eur:Euro
|
---|
191 |
|
---|
192 | fim:Markka
|
---|
193 | fjd:Fiji Dollar
|
---|
194 | fkp:Falkland Islands Pound
|
---|
195 | frf:French Franc
|
---|
196 |
|
---|
197 | gbp:Pound Sterling
|
---|
198 | gel:Lari
|
---|
199 | ghc:Cedi
|
---|
200 | gip:Gibraltar Pound
|
---|
201 | gmd:Dalasi
|
---|
202 | gnf:Guinea Franc
|
---|
203 | grd:Drachma
|
---|
204 | gtq:Quetzal
|
---|
205 | gwp:Guinea-Bissau Peso
|
---|
206 | gyd:Guyana Dollar
|
---|
207 |
|
---|
208 | hkd:Hong Kong Dollar
|
---|
209 | hnl:Lempira
|
---|
210 | hrk:Kuna
|
---|
211 | htg:Gourde
|
---|
212 | huf:Forint
|
---|
213 |
|
---|
214 | idr:Rupiah
|
---|
215 | iep:Irish Pound
|
---|
216 | ils:Shekel
|
---|
217 | inr:Indian Rupee
|
---|
218 | iqd:Iraqi Dinar
|
---|
219 | irr:Iranian Rial
|
---|
220 | isk:Iceland Krona
|
---|
221 | itl:Italian Lira
|
---|
222 |
|
---|
223 | jmd:Jamaican Dollar
|
---|
224 | jod:Jordanian Dinar
|
---|
225 | jpy:Yen
|
---|
226 |
|
---|
227 | kes:Kenyan Shilling
|
---|
228 | kgs:Som
|
---|
229 | khr:Riel
|
---|
230 | kmf:Comoro Franc
|
---|
231 | kpw:North Korean Won
|
---|
232 | krw:Won
|
---|
233 | kwd:Kuwaiti Dinar
|
---|
234 | kyd:Cayman Islands Dollar
|
---|
235 | kzt:Tenge
|
---|
236 |
|
---|
237 | lak:Kip
|
---|
238 | lbp:Lebanese Pound
|
---|
239 | lkr:Sri Lanka Rupee
|
---|
240 | lrd:Liberian Dollar
|
---|
241 | lsl:Loti
|
---|
242 | ltl:Lithuanian Litas
|
---|
243 | luf:Luxembourg Franc
|
---|
244 | lvl:Latvian Lats
|
---|
245 | lyd:Libyan Dinar
|
---|
246 |
|
---|
247 | mad:Moroccan Dirham
|
---|
248 | mdl:Moldovan Leu
|
---|
249 | mgf:Malagasy Franc
|
---|
250 | mkd:Denar
|
---|
251 | mmk:Kyat
|
---|
252 | mnt:Tugrik
|
---|
253 | mop:Pataca
|
---|
254 | mro:Ouguiya
|
---|
255 | mtl:Maltese Lira
|
---|
256 | mur:Mauritius Rupee
|
---|
257 | mvr:Rufiyaa
|
---|
258 | mwk:Kwacha
|
---|
259 | mxn:Mexican Nuevo Peso
|
---|
260 | myr:Malaysian Ringgit
|
---|
261 | mzm:Metical
|
---|
262 |
|
---|
263 | nad:Namibia Dollar
|
---|
264 | ngn:Naira
|
---|
265 | nio:Cordoba Oro
|
---|
266 | nlg:Netherlands Guilder
|
---|
267 | nok:Norwegian Krone
|
---|
268 | npr:Nepalese Rupee
|
---|
269 | nzd:New Zealand Dollar
|
---|
270 |
|
---|
271 | omr:Rial Omani
|
---|
272 |
|
---|
273 | pab:Balboa
|
---|
274 | pen:Nuevo Sol
|
---|
275 | pgk:Kina
|
---|
276 | php:Philippine Peso
|
---|
277 | pkr:Pakistan Rupee
|
---|
278 | pln:Zloty
|
---|
279 | pte:Portuguese Escudo
|
---|
280 | pyg:Guarani
|
---|
281 |
|
---|
282 | qar:Qatari Rial
|
---|
283 |
|
---|
284 | rol:Leu
|
---|
285 | rub:Russian Ruble
|
---|
286 | rur:Russian Ruble
|
---|
287 | rwf:Rwanda Franc
|
---|
288 |
|
---|
289 | sar:Saudi Riyal
|
---|
290 | sbd:Solomon Islands Dollar
|
---|
291 | scr:Seychelles Rupee
|
---|
292 | sdd:Sudanese Dinar
|
---|
293 | sek:Swedish Krona
|
---|
294 | sgd:Singapore Dollar
|
---|
295 | shp:St. Helena Pound
|
---|
296 | sit:Tolar
|
---|
297 | skk:Slovak Koruna
|
---|
298 | sll:Leone
|
---|
299 | sos:Somali Shilling
|
---|
300 | srg:Surinam Guilder
|
---|
301 | std:Dobra
|
---|
302 | svc:El Salvador Colon
|
---|
303 | syp:Syrian Pound
|
---|
304 | szl:Lilangeni
|
---|
305 |
|
---|
306 | thb:Baht
|
---|
307 | tjr:Tajik Ruble
|
---|
308 | tmm:Manat
|
---|
309 | tnd:Tunisian Dollar
|
---|
310 | top:Pa'anga
|
---|
311 | tpe:Timor Escudo
|
---|
312 | trl:Turkish Lira
|
---|
313 | ttd:Trinidad and Tobago Dollar
|
---|
314 | twd:New Taiwan Dollar
|
---|
315 | tzs:Tanzanian Shilling
|
---|
316 |
|
---|
317 | uah:Hryvnia
|
---|
318 | uak:Karbovanets
|
---|
319 | ugx:Uganda Shilling
|
---|
320 | usd:US Dollar
|
---|
321 | usn:US Dollar (Next day)
|
---|
322 | uss:US Dollar (Same day)
|
---|
323 | uyu:Peso Uruguayo
|
---|
324 | uzs:Uzbekistan Sum
|
---|
325 |
|
---|
326 | veb:Bolivar
|
---|
327 | vnd:Dong
|
---|
328 | vuv:Vatu
|
---|
329 |
|
---|
330 | wst:Tala
|
---|
331 |
|
---|
332 | xaf:CFA Franc BEAC
|
---|
333 | xag:Silver
|
---|
334 | xau:Gold
|
---|
335 | xba:European Composite Unit
|
---|
336 | xbb:European Monetary Unit
|
---|
337 | xbc:European Unit of Account 9
|
---|
338 | xb5:European Unit of Account 17
|
---|
339 | xcd:East Caribbean Dollar
|
---|
340 | xdr:SDR
|
---|
341 | xeu:ECU (until 1998-12-31)
|
---|
342 | xfu:UIC-Franc
|
---|
343 | xfo:Gold-Franc
|
---|
344 | xof:CFA Franc BCEAO
|
---|
345 | xpd:Palladium
|
---|
346 | xpf:CFP Franc
|
---|
347 | xpt:Platinum
|
---|
348 |
|
---|
349 | yer:Yemeni Rial
|
---|
350 | yum:New Dinar
|
---|
351 |
|
---|
352 | zal:Financial Rand
|
---|
353 | zar:Rand
|
---|
354 | zmk:Kwacha
|
---|
355 | zrn:New Zaire
|
---|
356 | zwd:Zimbabwe Dollar
|
---|