in reply to data structure problem
From your statement of the problem, it sounds like all the codes are unique. That allows you to use a translation hash. Lets set one up starting with an Array-of-Arrays that is built directly from your data.
You have a problem with the design which will make this construction fail as it is. What country is supposed to come back when you say $translator{EURO}[country]? Your question does not hold up on meeting real data.my @code_data = [ ['US','USA','USD'], # ... ]; my %translator = map { $_->[0] => $_, $_->[1] => $_, $_->[2] => $_ } @code_data; use constant ccode => 0; use conatant country => 1; use constant currency => 2; print $translator{USA}[currency]; print $translator{USD)[ccode];
The currency elements need to hash to an array. You may have other data with similar properties. It doesn't have to be painful, but it's not as simple as above:
That makes your lookups a little more complicated, but that is dictated by the problem domain.# construct %translator as before, but only for unique keys for (@code_data) { push @{$translator{$_->[currency]}}, $_; }
After Compline,
Zaxo
|
|---|