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.