thealienz1 has asked for the wisdom of the Perl Monks concerning the following question:
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: recursively passing hash reference
by planetscape (Chancellor) on Apr 03, 2006 at 09:25 UTC | |
|
Re: recursively passing hash reference
by thealienz1 (Pilgrim) on Apr 03, 2006 at 07:49 UTC |