in reply to Re: Creating a tree from a parent child list, that also includes node specific properties...
in thread Creating a tree from a parent child list, that also includes node specific properties...

bryank will also need some kind of iterator/traverser if the parents properties are going to be applied to the whole branch (i.e. children who are also parents).

You could check out Tree::Simple. The docs there also review most of the other tree data structures/parsers/dumpers.

Just a something something...
  • Comment on Re^2: Creating a tree from a parent child list, that also includes node specific properties...

Replies are listed 'Best First'.
Re^3: Creating a tree from a parent child list, that also includes node specific properties...
by bryank (Acolyte) on Jun 29, 2009 at 22:48 UTC
    I'm playing around with Tree::Simple, but I fear I don't get it:

    use warnings; use strict; use Tree::Simple; # make a tree root my $tree = Tree::Simple->new("0", Tree::Simple->ROOT); while(<DATA>) { chomp; my ($child, $parent) = split /:/; my $sub_tree = Tree::Simple->new("$parent", $tree); # explicity add a child to it $sub_tree->addChild(Tree::Simple->new("$child")); } $tree->traverse(sub { my ($_tree) = @_; print (("\t" x $_tree->getDepth()), $_tree->getNodeValue(), "\n"); }); __DATA__ apple:fruit granny smith:apple fuji:apple orange:fruit blood orange:orange mandarine:orange dwarf fuji:fuji

    Currently, the output looks like this:

    $ perl test.pl fruit apple apple granny smith apple fuji fruit orange orange blood orange orange mandarine fuji dwarf fuji

    I want a format more like the one in the module example:

    1 1.1 2 2.1 2.1a 2.2 3

    I know I am missing some stuff, but I can't grok it. :(