---
name: "Pod::Abstract::Tree"
section: "3pm"
platform: "linux"
package: "libpod-abstract-perl"
version: "0.20-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Pod::Abstract::Tree"
---

# Pod::Abstract::Tree(3pm)

Manage a level of Pod document tree Nodes.

## NAME

Pod::Abstract::Tree - Manage a level of Pod document tree Nodes.

## DESCRIPTION

Pod::Abstract::Tree keeps track of a set of Pod::Abstract::Node elements, and allows manipulation of that list of elements. Elements are stored in an ordered set - a single node can appear once only in a single document tree, so inserting a node at a point will also remove it from it's previous location.

This is an internal class to Pod::Abstract::Node, and should not generally be used externally.

## METHODS

### detach

```
 $tree->detach($node);
```

Unparent the `$node` from `$tree`. All other elements will be shifted to fill the empty spot.

### push

Add an element to the end of the node list.

### pop

Remove an element from the end of the node list.

### insert\_before

```
 $tree->insert_before($target,$node);
```

Insert `$node` before `$target`. Both must be children of `$tree`

### insert\_after

```
 $tree->insert_after($target,$node);
```

Insert `$node` after `$target`. Both must be children of `$tree`

### unshift

Remove the first node from the node list and return it.

Unshift takes linear time - it has to relocate every other element in id\_map so that they stay in line.

### children

Returns the in-order node list.

### index\_relative

```
 my $node = $tree->index_relative($target, $offset);
```

This method will return a node at an offset of `$offset` (which may be negative) from this tree structure. If there is no such node, undef will be returned. For example, an offset of 1 will give the following element of `$node`.

## AUTHOR

Ben Lilburne \<bnej@mac.com\>

## COPYRIGHT AND LICENSE

Copyright (C) 2009 Ben Lilburne

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