NAME
Tree::Dump - Dump a tree object
VERSION
This document describes version 0.061 of Tree::Dump (from Perl distribution Tree-Dump), released on 2021-06-27.
SYNOPSIS
use Tree::Dump; # exports td() and tdmp()
td($tree);
Sample output:
(Tree::Example::HashNode) {_parent=>undef,id=>1,level=>0}
|-- (Tree::Example::HashNode::Sub1) {id=>2,level=>1}
| \-- (Tree::Example::HashNode::Sub2) {id=>5,level=>2}
| |-- (Tree::Example::HashNode::Sub1) {id=>7,level=>3}
| | \-- (Tree::Example::HashNode::Sub2) {id=>15,level=>4}
| |-- (Tree::Example::HashNode::Sub1) {id=>8,level=>3}
| |-- (Tree::Example::HashNode::Sub1) {id=>9,level=>3}
| \-- (Tree::Example::HashNode::Sub1) {id=>10,level=>3}
|-- (Tree::Example::HashNode::Sub1) {id=>3,level=>1}
| \-- (Tree::Example::HashNode::Sub2) {id=>6,level=>2}
| |-- (Tree::Example::HashNode::Sub1) {id=>11,level=>3}
| | \-- (Tree::Example::HashNode::Sub2) {id=>16,level=>4}
| |-- (Tree::Example::HashNode::Sub1) {id=>12,level=>3}
| |-- (Tree::Example::HashNode::Sub1) {id=>13,level=>3}
| \-- (Tree::Example::HashNode::Sub1) {id=>14,level=>3}
\-- (Tree::Example::HashNode::Sub1) {id=>4,level=>1}
Sample output when rendering an array-backed tree:
(Tree::Example::ArrayNode) [undef,undef,undef,"<obj>","<obj>","<obj>"]
|-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>","<obj>"]
| \-- (Tree::Example::ArrayNode::Sub2) [undef,undef,"<obj>","<obj>","<obj>","<obj>","<obj>"]
| |-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>","<obj>"]
| | \-- (Tree::Example::ArrayNode::Sub2) [undef,undef,"<obj>"]
| |-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>"]
| |-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>"]
| \-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>"]
|-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>","<obj>"]
| \-- (Tree::Example::ArrayNode::Sub2) [undef,undef,"<obj>","<obj>","<obj>","<obj>","<obj>"]
| |-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>","<obj>"]
| | \-- (Tree::Example::ArrayNode::Sub2) [undef,undef,"<obj>"]
| |-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>"]
| |-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>"]
| \-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>"]
\-- (Tree::Example::ArrayNode::Sub1) [undef,undef,"<obj>"]
DESCRIPTION
This module is useful for debugging. The interface is modeled after Data::Dmp (which in turn is modeled after Data::Dump). Instead of dd
, this module exports td
which you can use to dump a tree object to STDOUT. There is also tdmp
(like Data::Dmp's dmp
) which return dumped data in a string.
Any tree object can be printed as long as it supports parent
and children
methods. See Role::TinyCommons::Tree::Node for more information about the requirements.
FUNCTIONS
td([ \%opts, ] $tree) => str
Dump tree to STDOUT and return it. See tdmp
for list of known options.
tdmp([ \%opts, ] $tree) => str
Return dumped tree. If first argument is a plain hashref, it will be regarded as options. Known options:
get_children_method => str (default: children)
Example:
get_children_method => "get_children"
By default,
children
is the method that will be used on node objects to retrieve children nodes. But you can customize that using this option. Note that the method must return either a list or arrayref of nodes.indent => int (default: 2)
Number of spaces for each indent level.
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Tree-Dump.
SOURCE
Source repository is at https://github.com/perlancar/perl-Tree-Dump.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Tree-Dump
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
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021, 2020, 2016 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.