#!/usr/bin/perl use strict; use warnings; use LWP::Simple; use XML::Simple; # downloadez xml-ul de la bnr si-l parsez my $xml = XMLin( get("http://www.bnr.ro/nbrfxrates.xml") ); # are un camp care da data (ultima zi bancara) my $date = $xml->{Body}{Cube}{date}; print "Date is $date\n"; # acum sa obtinem ratele valutare my %rates = (); # scot lista de rate valutare si o iau la iterat foreach my $curs ( @{ $xml->{Body}{Cube}{Rate} } ) { # anumite rate au un multiplicator - forinti, yeni, etc. my $mul = $curs->{multiplier}; $mul ||= 1; # populez hashul %rates cu perechi gen 'EUR'=> 4.176 $rates{ $curs->{currency} } = ( $curs->{content} / $mul ); } # iau la rand toate ratele, as putea sa folosesc doar un array predefinit, gen: # foreach ('EUR', 'USD', 'GBP') { foreach ( sort keys %rates ) { # pare complicat, dar nu e, daca stii la ce sa te uiti: # $_ este variabila iteratiei (cheia curenta din %rates, de ex. 'EUR' # \t este un tab :) # $rates{$_} este $rates{'EUR'} adica cursul / multiplicator, adica ce trebuie print "$_\t$rates{$_}\n"; }