
Forest::Tree - An n-ary tree

use Forest::Tree;
my $t = Forest::Tree->new(
node => 1,
children => [
Forest::Tree->new(
node => 1.1,
children => [
Forest::Tree->new(node => 1.1.1),
Forest::Tree->new(node => 1.1.2),
Forest::Tree->new(node => 1.1.3),
]
),
Forest::Tree->new(node => 1.2),
Forest::Tree->new(
node => 1.3,
children => [
Forest::Tree->new(node => 1.3.1),
Forest::Tree->new(node => 1.3.2),
]
),
]
);
$t->traverse(sub {
my $t = shift;
print((' ' x $t->depth) . ($t->node || '\undef') . "\n");
});

This module is a basic n-ary tree, it provides most of the functionality of Tree::Simple, whatever is missing will be added eventually.

Return the child at this position. (zero-base index)
Returns the number of children this tree has

True if the current tree has no parent
True if the current tree has no children
Return the depth of this tree. Root has a depth of -1
Add a new child. The $child must be a Forest::Tree
Insert a child at this position. (zero-base index)
Remove the child at this position. (zero-base index)
Takes a reference to a subroutine and traverses the tree applying this subroutine to every descendant.
Returns an array reference of all siblings (not including us)

All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.

Stevan Little <stevan.little@iinteractive.com>

Copyright 2008-2009 Infinity Interactive, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.