Pod::Tree - Create a static syntax tree for a POD
use Pod::Tree;
$tree = new Pod::Tree;
$tree->load_file ( $file, %options)
$tree->load_fh ( $fh , %options);
$tree->load_string ( $pod , %options);
$tree->load_paragraphs(\@pod , %options);
$loaded = $tree->loaded;
$node = $tree->get_root;
$tree->set_root ($node);
$node = $tree->pop;
$tree->push(@nodes);
$tree->walk(\&sub);
$tree->has_pod and ...
print $tree->dump;
Pod::Escapes
Nothing
Pod::Tree parses a POD into a static syntax tree.
Applications walk the tree to recover the structure and content of the POD.
See Pod::Tree::Node for a description of the tree.
new Pod::Tree
Pod::Tree object.
The syntax tree is initially empty.
load_file($file, %options)
Parses a POD and creates a syntax tree for it. $file is the name of a file containing the POD. Returns null iff it can't open $file.
See /OPTIONS for a description of %options
load_fh($fh, %options)
Parses a POD and creates a syntax tree for it.
$fh is an IO::File object that is open on a file containing the POD.
See /OPTIONS for a description of %options
load_string($pod, %options)
Parses a POD and creates a syntax tree for it. $pod is a single string containing the POD.
See /OPTIONS for a description of %options
load_paragraphs(\@pod, %options)
Parses a POD and creates a syntax tree for it. \@pod is a reference to an array of strings. Each string is one paragraph of the POD.
See /OPTIONS for a description of %options
loaded
load_* methods has been called on $tree.
get_root
set_root($node)
push(@nodes)
pop
walk(\&sub)
Walks the syntax tree, depth first. Calls sub once for each node in the tree. The current node is passed as the first argument to sub.
walk descends to the children and siblings of $node iff
sub() returns true.
has_pod
dump
Pod::Tree interpreted your POD.
These options may be passed in the %options hash to the load_* methods.
in_pod => 0
in_pod => 1
Sets the initial value of in_pod.
When in_pod is false,
the parser ignores all text until the next =command paragraph.
The initial value of in_pod
defaults to false for load_file() and load_fh() calls
and true for load_string() and load_paragraphs() calls.
This is usually what you want, unless you want consistency.
If this isn't what you want,
pass different initial values in the %options hash.
limit => n
load_file($file)
Currently, Pod::Tree does not provide a complete, exact
representation of its input. For example, it doesn't distingish
between
C<$foo-E<gt>bar>
and
C<< $foo->bar >>
As a result, it is not guaranteed that a file can be
exactly reconstructed from its Pod::Tree representation.
In the documentation of the
L<"sec"> section in this manual page
markup, perlpod has always claimed
(the quotes are optional)
However, there is no way to decide from the syntax alone whether
L<foo>
is a link to the foo man page or
a link to the foo section of this man page.
Pod::Tree parses L<foo> as a link to a section if
foo looks like a section name (e.g. contains whitespace),
and as a link to a man page otherswise.
In practice, this tends to break links to sections.
If you want your section links to work reliably,
write them as L<"foo"> or L</foo>.
perl(1), Pod::Tree::Node, Pod::Tree::HTML
Steven McDougall <swmcd@world.std.com>
Copyright (c) 1999-2009 by Steven McDougall. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.