NAME
Tree::From::TextLines - Build a tree object from lines of text, each line indented to express structure
VERSION
This document describes version 0.021 of Tree::From::TextLines (from Perl distribution Tree-From-Text), released on 2021-05-06.
SYNOPSIS
use Tree::From::TextLines qw(build_tree_from_text_lines);
use Tree::Object::Hash;
my $tree = build_tree_from_text_lines(<<'_');
id:root _class:Tree::Object::Hash
id:child1 attr1:foo
id:child2 attr1:foo attr2:bar _class:My::Node
id:grandchild1
id:child3
_
DESCRIPTION
FUNCTIONS
build_tree_from_text_lines([ \%opts, ] $text) => obj
This function can be used to build a tree object from text lines. Each line represents a node and its indentation expresses structure: line that is more indented than its previous line signifies that the node is child of the previous node.
This is more convenient than Tree::From::Struct, but actually internally the the text will be converted to structure to feed to Tree::From::Struct to get the final tree object.
Each line of text by default must be in form of name-value pairs separated by whitespaces (it will be parsed simply using Perl code %attrs = /(\w+):(\S*)/g
), e.g.:
id:root attr1:foo attr2:bar
The names will become object attributes, except special names that begin with underscore (_
), like _class
, _constructor
, etc. They mean the same as in Tree::From::Struct.
To use this function, you must have at least one tree node class. Any class will do as long as it responds to parent
and children
(see Role::TinyCommons::Tree::Node for more details on the requirement). Supply the class name in _class
in the first line.
Available options:
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Tree-From-Text.
SOURCE
Source repository is at https://github.com/perlancar/perl-Tree-From-Text.
BUGS
Please report any bugs or feature requests on the bugtracker website https://github.com/perlancar/perl-Tree-From-Text/issues
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
Tree::From::Struct, Tree::From::ObjArray
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.