#!/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";
}