the problem i want to solve is the dynamic creation of a hashed tree from the result of a database query. i tried to solve it with arrays only the success was minor. what i need is a tree of the following scheme:
root => node1 => node2 => node2.1 => node2.2 => node3
the problem is that the structure has no defined depth. and btw, though it looks like another forum aproach it isn't. :)

here is what i tried:

for (my $i=0; $i < $counter; $i++) { my $result = $sth->fetchrow_hashref (); # root node if (scalar @path == 0) { $offset = $result->{'lvl'} - 1; push @path, $result->{'payload'}; push @tree, $result->{'payload'}; next; } # child node else { # going down (one step only) if (($result->{'lvl'} - $offset) > scalar @path) { my $last = $path[$#path]; push @path, $result->{'payload'}; push @{$tree[$#path][0]}, $result->{'payload'}; $a_counter = 0; } # same level elsif (($result->{'lvl'} - $offset) == scalar @path) { my $last = $path[$#path -1]; push @{$tree[$#path][$a_counter]}, $result->{'payload' +}; $a_counter++; } # going up else { my $steps = scalar @path - $result->{'lvl'} + ($offset + -1); $#path = $steps; push @path, $result->{'payload'}; my $last = $path[$#path]; push @{$tree[$#path][0]}, $result->{'payload'}; $a_counter = 0; } }
the result as you may figure out is a array with tree arrays in it without assotiation to the parent.
the database structure is a nested set as found at celko's "sql for smarties", just modified to have more smaller trees instead of one giant one to speed up inserts.

In reply to dynamic hashed tree by norbu09

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.