perlquestion
thealienz1
<p>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.</p>
<p>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.</p>
<readmore>
<code>
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 = " . join(',',@items)."\n";
add($root->{$first}->{children}, $level+1, @items);
}
}
add($start, 1, 1..3);
add($start, 1, 1..2);
print Dumper($start);
</code>
<p>Expected output</p>
<code>
$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
}
};
</code>
</readmore>
<p>I realize its probably something really trivial that I am missing here, but any help is a appreciated.</p>
<p>Thanks</p>