in reply to data structure problem

Presupposing that 'country' and 'currency' will always be unique keys (and renaming your old %countryMap to %codeMap because the label made more sense to me in this case), this would work...
my %codeMap = ( US => { country => 'USA', currency => 'USD'} ); my %currencyMap = map { $codeMap{$_}{currency} => $_ } keys(%codeMap); my %countryMap = map { $codeMap{$_}{country} => $_ } keys(%codeMap);

But, you probably want to use a database for this.
Hope this helps!

--jwest

-><- -><- -><- -><- -><-
All things are Perfect
    To every last Flaw
    And bound in accord
         With Eris's Law
 - HBT; The Book of Advice, 1:7