NAME

Libconf::Templates::Generic::Sections - Libconf generic low level template for semantic association (SECTION) rules

DESCRIPTION

Libconf::Templates::Generic::Sections is a generic template that handles config files that contain semantic informations of type : (SECTION).

SYNOPSIS

$template = new Libconf::Templates::Generic::Section({
                                              section_regexp => '^\s*\[([^\]]+)\]\s*$',
                                              section_output_function => sub { "[$_->[0]]" },
                                              has_endsection => 0,
                                              endsection_regexp => '',
                                              endsection_output_function => '',
                                              comments_struct => [['#']],
                                             });
$template->read_conf();
...
(see L<Libconf::Templates> for transformation methods on $template) ...
...
$template->write_conf("output_file");

CONSTRUCTOR

new($options)

creates the template

$template = new Libconf::Templates::Generic::Section({
                                                       section_regexp => '^\s*\[([^\]]+)\]\s*$',
                                                       section_output_function => sub { "[$_->[0]]" },
                                                       has_endsection => 0,
                                                       endsection_regexp => '',
                                                       endsection_output_function => '',
                                                       comments_struct => [['#']],
                                                     });

arguments

$options [type : HASH_REF] specifies the options to create the new template instance.

options

section_regexp [type : STRING, default : '^\s*\[([^\]]+)\]\s*$'] : the regexp that is applied to determine if a line is a section start. $1 has to be the section name.

section_output_function [type : FUNCTION_REF, default : sub { "[$_->[0]]" } ] : the code to be applied to a section atom, to generate the line to output. It takes in arguments the name of the section, the atom structure, and $parser_env, the parser environment variable. It should return the line to be written

has_endsection [type : BOOLEAN, default : 1] : if true, section have both start and end tag. If false, a section is considered to end where another section begins, or at the end of the file

endsection_output_function [type : FUNCTION_REF, default : sub { '' } ] : the code to be applied to a section atom, to generate the end section line to output. It takes in arguments the name of the section, the atom structure, and $parser_env, the parser environment variable. It should return the line to be written

endsection_regexp [type : STRING, default : ''] : the regexp that is applied to determine if a line is a end of a section.

comments_struct [type : ARRAY_REF of ARRAY_REF of STRING,STRING,SCALAR, default : [['#']] ] : defines the type and the characters of comments. See Libconf::Templates::Keyvalue for additional details on it

GENERAL METHODS

See Libconf::Templates for the general list of methods you can call on this template.

SPECIFIC METHODS

There is no specific method