home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 December (Special) / PCWorld_2005-12_Special_cd.bin / Bezpecnost / lsti / lsti.exe / framework-2.5.exe / Currency.pm < prev    next >
Text File  |  2005-01-27  |  6KB  |  357 lines

  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
  357.