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.
This class inherits from Forest::Tree::Pure>, but all shared methods and attributes are documented in both classes.
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
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)
Invokes reconstruct_with_class with Forest::Tree::Pure.
reconstruct_with_class
Returns the invocant (without cloning).
See "clone" in Forest::Tree::Pure.
This variant will not clone the parent, but return a clone of the subtree that is detached.
Returns the index of the tree in the list of children.
Equivalent to calling $tree-parent->get_child_index($tree)>.
$tree-
Returns -1 if the node has no parent (the root node).
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-2014 Infinity Interactive, Inc.
http://www.iinteractive.com
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Forest, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Forest
CPAN shell
perl -MCPAN -e shell install Forest
For more information on module installation, please visit the detailed CPAN module installation guide.