in reply to nested hashes and their usage e.g $foo{bar}{baz}
In this case, the entities concerned (in the real world, not the computer would or Perl world) can be understand as a two-level tree, at the first level, we cut the world into continents, then at the second level, we further divide each continent into countries. In the computer world, or more precisely, in the world of Perl, we see a two-dimension hash as a good fit to represent this structure.use strict; my %currency; $currency{northamerica}{America} = "US Dollar"; $currency{northamerica}{Canada} = "Canadian Dollar"; $currency{asia}{Japan} = "Yuen"; $currency{asia}{China} = "RMB"; foreach my $continent (keys %currency) { foreach my $country (keys %{$currency{$continent}}) { print "in $continent/$country, people use $currency{$continent +}{$country}\n"; } }
|
|---|