The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


DBIx::Class::Tree - Manipulate and anaylze tree structured data.


The tree modules provide the tools to represent, modify, and analyze trees of data with DBIx::Class.


DBIx::Class::Tree::AdjacencyList - Manage a tree of data using the common adjacency list model.

DBIx::Class::Tree::AdjacencyList::Ordered - Glue DBIx::Class::Ordered and DBIx::Class::Tree::AdjacencyList together.


All tree related modules must conform to have and use the basic traversal methods of a DAG. For the most part this just means that Tree modules must provide the appearance of having multiple parents per node (via a parents() method) but may very well never return more than one parent. All utility modules, such as a Visitor module, should do its best to never assume that a node only has one parent. There are situations where this is not possible - in those cases the module's documentation should clearly state that it is not compatible with DAGs.

So far there is no Tree::DAG module, but there will be. These requirements are vague, and the requirements of Tree modules to be DAG compatible will become more defined in due course.


Aran Clary Deltac <>


You may distribute this code under the same terms as Perl itself.