NAME
Config::Pod - Configuration files in POD format
SYNOPSIS
use Config::Pod;
my $cfg = new Config::POD;
$cfg -> filename($filename) or $cfg -> text($podtext);
$cfg -> exists( @path )
$cfg -> val( @path )
DESCRIPTION
Config::Pod allows configuration files to be written in POD. Any text may be included at any location without affecting the configuration since Config::Pod only pays attention to lines beginning with `='.
Headings must be properly nested (head1 followed by head3 is not allowed, but head3 followed by head2 is allowed).
The module searches for lines beginning with =head(\d+) and =item. Only items are leaf nodes and are stored in an array under the appropriate heading.
METHODS
- exists
-
Given a list of keys, will return true if the list represents a (possibly empty) collection of leaf nodes (
=item
s). Note that intermediate headings will return false. - filename
-
If no arguments are present, returns the filename of the configuration source. If an argument is given, it tries to read the file and parse the contents.
- keys
-
Given a list of keys, will return an array (possibly empty) of keys which reside under the list.
- text
-
Either an array or an array reference may be passed. The contents will be parsed as a POD file.
- val
-
Given a list of keys, will return an array reference (possibly empty) of items.
EXAMPLE
The following is an example POD file.
=head1 Section1
=head2 Section2
=over 4
=item Item1
=item Item2
=back 4
=head2 Section3
=head3 SectionA
=over 4
=item ItemA
=item ItemB
=back 4
=head2 Section4
=cut
The following values then are available:
$cfg -> val( qw(section1 section2) ) ==
[ 'Item1', 'Item2' ];
$cfg -> val( qw(section1 section3 sectiona) ) ==
[ 'ItemA', 'ItemB' ];
$cfg -> keys( qw(section1) ) ==
( qw(section2 section3 section4) );
and
$cfg -> exists( qw(section1 section4) );
should return true even though it has no values.
On the other hand,
$cfg -> exists( qw(section1 section3) );
should return false since there is yet another heading under Section3.
AUTHOR
James Smith <jgsmith@jamesmith.com>
COPYRIGHT
Copyright (C) 2001 Texas A&M University. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 41:
'=item' outside of any '=over'
- Around line 68:
You forgot a '=back' before '=head1'