Commit | Line | Data |
---|---|---|
6b14ceb7 JH |
1 | # |
2 | # Locale::Currency - ISO three letter codes for currency identification | |
3 | # (ISO 4217) | |
4 | # | |
3a6b268d | 5 | # $Id: Currency.pm,v 2.2 2002/07/10 16:33:27 neilb Exp $ |
6b14ceb7 | 6 | # |
47a334e9 JH |
7 | |
8 | package Locale::Currency; | |
9 | use strict; | |
10 | require 5.002; | |
11 | ||
47a334e9 JH |
12 | require Exporter; |
13 | ||
14 | #----------------------------------------------------------------------- | |
15 | # Public Global Variables | |
16 | #----------------------------------------------------------------------- | |
17 | use vars qw($VERSION @ISA @EXPORT); | |
0e0a3cd3 | 18 | $VERSION = sprintf("%d.%02d", q$Revision: 2.21 $ =~ /(\d+)\.(\d+)/); |
47a334e9 JH |
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 | #======================================================================= | |
6b14ceb7 JH |
31 | # |
32 | # code2currency( CODE ) | |
33 | # | |
47a334e9 JH |
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 | ||
6b14ceb7 JH |
55 | |
56 | #======================================================================= | |
57 | # | |
58 | # currency2code ( CURRENCY ) | |
59 | # | |
60 | #======================================================================= | |
47a334e9 JH |
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 | ||
47a334e9 JH |
81 | |
82 | #======================================================================= | |
6b14ceb7 JH |
83 | # |
84 | # all_currency_codes() | |
85 | # | |
86 | #======================================================================= | |
47a334e9 JH |
87 | sub all_currency_codes |
88 | { | |
89 | return keys %CODES; | |
90 | } | |
91 | ||
6b14ceb7 JH |
92 | |
93 | #======================================================================= | |
94 | # | |
95 | # all_currency_names() | |
96 | # | |
97 | #======================================================================= | |
47a334e9 JH |
98 | sub all_currency_names |
99 | { | |
100 | return values %CODES; | |
101 | } | |
102 | ||
47a334e9 JH |
103 | |
104 | #======================================================================= | |
105 | # initialisation code - stuff the DATA into the CODES hash | |
106 | #======================================================================= | |
107 | { | |
108 | my $code; | |
109 | my $currency; | |
110 | ||
5b7ea690 | 111 | local $_; |
47a334e9 JH |
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 | } | |
3a6b268d JH |
121 | |
122 | close(DATA); | |
47a334e9 JH |
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:Candian 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 |