CXC::Data::Visitor
CXC::Data::Visitor provides a means of performing a depth first
traversal of a data structure. There are similar modules on CPAN ("SEE
ALSO"); this module provides a few extras.
* Hashes are traversed in sorted key order. By default the order is
that provided by Perl's standard string sort order. The caller may
provide a coderef to provide an alternative sort order
("sort_keys").
* The callback is invoked first on a container and then its elements.
Given
{ a => { b => [ 0 ], c => 2 } }
the callback order is
{a}, {a}{b}, {a}{b}[0], {a}{c}
* Blessed hashes or arrays are treated as terminal elements and are
not further traversed.
* Cycles are detected upon traversing a container a second time in a
depth first search, and the resultant action is caller selectable.
* Containers that can be reached multiple times without cycling, e.g.
%hash = ( a => { b => 1 }, );
$hash{c} = $hash{a};
are visited once per parent, e.g.
{a}, {a}{b}, {a}{b}[0]
{c}, {c}{b}, {c}{b}[0]
* A container (hash or array) may be optionally be immediately
revisited.
* An element whose value is a container may be optionally be revisited
after the container is visited.
* The traversal may be aborted.
* The complete path from the structure route to an element (both the
ancestor containers and the keys and indexes required to traverse
the path) is available.
INSTALLATION
This is a Perl module distribution. It should be installed with whichever
tool you use to manage your installation of Perl, e.g. any of
cpanm .
cpan .
cpanp -i .
Consult http://www.cpan.org/modules/INSTALL.html for further instruction.
Should you wish to install this module manually, the procedure is
perl Build.PL
./Build
./Build test
./Build install
COPYRIGHT AND LICENSE
This software is Copyright (c) 2024 by Smithsonian Astrophysical
Observatory.
This is free software, licensed under:
The GNU General Public License, Version 3, June 2007