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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |