sub manal { my $htree = shift; my $rul = shift; my $level = shift || 1; my $hist = (split /\n/, $htree->data)[0]; my $str = (split /\|/, $hist)[0]; my ($k, $v); $hist = "|$hist"; &log("entering manal L$level with history: $hist\n"); while(($k,$v) = each %$rul) { my @out = @{&proccode($str,$v)} for my $h (@out) { &log("debug: (out: @out - $h)/$str/$hist/$k\n"); &manal($htree->append("$h$hist\n$k"),$rul,$level+1) if($hist !~ /\|$h\|/); } } &log("exiting manal L$level for STR: $str\n"); }