I've added seekable and reversible hash iteration to
Tree::RB. Here is an example:
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";
}
Output:
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
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.