I am currently working on code that creates something simliar to a trie structure. My implementation is pretty much trying to create a hash of hash, etc... which should be a problem as I believe I have enough memory.

I have come to a bit a pickle though. It might be that I have been working on this program for awhile and that it is late, but I have come to stopping point. For the life of my I am not able to implement a simple hash reference recursion. Let me explain with my code and expected output.

use strict; use Data::Dumper; my $start; sub add{ my $root = shift; my $level = shift; my @items = @_; if(!@items) {return;} #print "level = $level\n"; while(@items) { my $first = shift @items; $root->{$first}->{count}++; #print "\t" x $level . "first = " . $first . ", values = " . j +oin(',',@items)."\n"; add($root->{$first}->{children}, $level+1, @items); } } add($start, 1, 1..3); add($start, 1, 1..2); print Dumper($start);

Expected output

$VAR1 = { '1' => { 'children' => { '2' => { 'children' => { '3' => { 'count'=>1} }, 'count' => 2}, '3' => {'count' => 1} }, 'count' => 2 }, '3' => { 'count' => 1 }, '2' => { 'children' => { '3' => { 'count' => 1 } }, 'count' => 2 } };

I realize its probably something really trivial that I am missing here, but any help is a appreciated.

Thanks


In reply to recursively passing hash reference by thealienz1

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.