use strict; use warnings; use feature 'say'; use Tree::RB; my $tied = tie(my %capital, 'Tree::RB'); %capital = ( France => 'Paris', England => 'London', Hungary => 'Budapest', Ireland => 'Dublin', Egypt => 'Cairo', Germany => 'Berlin', ); say 'Countries starting from Germany:'; $tied->hseek('Germany'); while(my ($key, $val) = each %capital) { say "key: $key, val: $val"; } say "\nCountries in reverse:"; $tied->hseek({-reverse=> 1}); while(my ($key, $val) = each %capital) { say "key: $key, val: $val"; } #### Countries starting from Germany: key: Germany, val: Berlin key: Hungary, val: Budapest key: Ireland, val: Dublin Countries in reverse: key: Ireland, val: Dublin key: Hungary, val: Budapest key: Germany, val: Berlin key: France, val: Paris key: England, val: London key: Egypt, val: Cairo