Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

forest::tree::builder(3pm) [debian man page]

Forest::Tree::Builder(3pm)				User Contributed Perl Documentation				Forest::Tree::Builder(3pm)

NAME
Forest::Tree::Builder - An abstract role for bottom up tree reader SYNOPSIS
package MyBuilder; use Moose; with qw(Forest::Tree::Builder); # implement required builder: sub _build_subtrees { return [ $self->create_new_subtree( ... ), # probably a recursive process ]; } my $builder = MyBuilder->new( tree_class => ..., ... ); my $tree = $builder->tree; DESCRIPTION
Forest::Tree::Builder replaces Forest::Tree::Loader and Forest::Tree::Reader with a bottom up construction approach, which is also suitable for constructing Forest::Tree::Pure derived trees without excessive cloning. It provides a declarative API instead of an imperative one, where "tree" is lazily constructed on the first use, instead of being constructed immediately and "filled in" by the "load" method. METHODS
create_new_subtree Implemented by Forest::Tree::Constructor _build_tree Constructs a root node by using the top level "subtrees" list as the children. _build_subtrees Build the subtrees. Abstract method that should return an array ref of Forest::Tree::Pure derived objects. SEE ALSO
Forest::Tree::Builder::SimpleTextFile BUGS
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. AUTHOR
Yuval Kogman COPYRIGHT AND LICENSE
Copyright 2008-2010 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. perl v5.10.1 2010-09-27 Forest::Tree::Builder(3pm)

Check Out this Related Man Page

Forest::Tree(3pm)					User Contributed Perl Documentation					 Forest::Tree(3pm)

NAME
Forest::Tree - An n-ary tree SYNOPSIS
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') . " "); }); DESCRIPTION
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. ATTRIBUTES
node uid parent parent _set_parent has_parent clear_parent children get_child_at ($index) Return the child at this position. (zero-base index) child_count Returns the number of children this tree has size size has_size clear_size height height has_height clear_height METHODS
is_root True if the current tree has no parent is_leaf True if the current tree has no children depth Return the depth of this tree. Root has a depth of -1 add_child ($child) add_children (@children) Add a new child. The $child must be a "Forest::Tree" insert_child_at ($index, $child) Insert a child at this position. (zero-base index) remove_child_at ($index) Remove the child at this position. (zero-base index) traverse (&func) Takes a reference to a subroutine and traverses the tree applying this subroutine to every descendant. siblings Returns an array reference of all siblings (not including us) to_pure_tree Invokes "reconstruct_with_class" with Forest::Tree::Pure. to_mutable_tree Returns the invocant (without cloning). clone See "clone" in Forest::Tree::Pure. This variant will not clone the parent, but return a clone of the subtree that is detached. get_index_in_siblings Returns the index of the tree in the list of children. Equivalent to calling "$tree-"parent->get_child_index($tree)>. Returns -1 if the node has no parent (the root node). BUGS
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. AUTHOR
Stevan Little <stevan.little@iinteractive.com> COPYRIGHT AND LICENSE
Copyright 2008-2010 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. perl v5.10.1 2010-09-27 Forest::Tree(3pm)
Man Page