NAME

Data::Tree::Describe - Create annotated versions of complex data trees

WARNING

This module is in active development and has been uploaded simply as part of a standard and automated release procedure.

If you have any ideas for what would be helpful to implement, please contact the author!

SYNOPSIS

use Data::Tree::Describe;

my $data_object = {test=>['some','stuff']};

my $described_tree = Data::Tree::Describe->new($data_object);

DESCRIPTION

This module was originally developed for data trees or objects created from json::maybexs, though it technically will work on any perl data tree.

The module is fairly heavy processing wise and recursively iterates through a tree determining the type for every node as well as other handy attributes such as how many children are in any HASH or ARRAY type.

METHODS

Callable methods

new

Create a new annotated data tree

Takes 1 argument a $obj

BEWARE large objects will take some time to be processed.

paths_list

Return a list of all paths in the format: [['child name',TYPE]....]

Of the list returned, the first element [0] will always have a blank 'child name' as it is representative of the parent node.

extract

Return a block of data starting from the point specified.

Accepts 1 argument; the path in the format of a list ['some_node',3,'element']

If you pass a blank or undefined list to the function it will return the entire tree, as it will presume you are selecting the root/base node.

CORROSPONDANCE

Regarding bugs, featuire requests, patches, forks or other please view the project on github here https://github.com/PaulGWebster/p5-Data-Tree-Describe

AUTHOR

Paul G Webster <daemon@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Paul G Webster.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.