Hi,
I'ld do it like this:
#!/usr/bin/perl -w
use strict;
sub printstruct {
my $struct=shift;
my $main=shift||0;
my $ret=$main?"\n":" ";
my $item;
if (ref $struct eq "ARRAY") {
for $item (sort @$struct) {
printstruct($item);
}
} elsif (ref $struct eq "HASH") {
for $item (sort keys %$struct) {
print $item," " if $main;
printstruct($struct->{$item});
print $ret;
}
} else {
print $struct,$ret;
}
}
my $struct={
mykey1 => { 'firstkey' => 'firstvalue', 'secondkey' => 'secondval'
+ },
mykey2 => { 'ninza' => 'turtle', 'Hurricane' => 'Dennis' },
mykey3 => [ [ 'one', 'two', 'three' ] ],
mykey4 => [ [ 4, 5, 'three' ], [ 6, 7, 'four' ], [ 8, 9, 'five' ]
+],
};
printstruct($struct,1);
Note that I was unsure which the correct data struct was, so I made some changes in it as you can see. This would work for any struct with the three basic data types.
-
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.