Libconf::Templates::Generic::KeyValues - Libconf generic low level template for semantic association (KEY - (KEY0 - VALUE0, ... KEYn - VALUEn)) styles config files
Libconf::Templates::Generic::KeyValues is a generic template that handles config files that contain semantic informations of type : (KEY - (KEY0 - VALUE0, ... KEYn - VALUEn)).
my $template = new Libconf::Templates::Generic::KeyValues({
filename => 'some_file',
comments_struct => [['#']],
regexp => '^\s*(\S+?):(\S*?):(\S*?):(.*?)\s*$',
keys_list => [qw(group_name passwd GID user_list)],
identifier_key => 'group_name',
output_function => sub { join(':', map { $atom->{values}{$_} } @_ ) }
})
$template->read_conf();
...
(see L<Libconf::Templates> for transformation methods on $template)
...
$template->write_conf();
creates the template
$template = new Libconf::Templates::Generic::KeyValues({
filename => 'some_file',
comments_struct => [['#']],
regexp => '^\s*(\S+?):(\S*?):(\S*?):(.*?)\s*$',
keys_list => [qw(group_name passwd GID user_list)],
identifier_key => 'group_name',
output_function => sub { join(':', map { $atom->{values}{$_} } @_ ) }
})
arguments
$options [type : HASH_REF] specifies the options to create the new template instance.
options
filename [type : STRING, default : ''] : the filename of the config file you want to work on. Can be read and written lately by using set_filename and get_filename.
regexp [type : STRING, default : ''] : the regexp that is applied to each line
keys_list [type : ARRAY_REF, default : []] : the list of names of keys which will receive the regexp matchs
identifier_key [type : STRING, default : $key_list->[0] ] : the key that identifies line
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
keys_list [type : ARRAY_REF, default : []] : the list of names of keys which will receive the regexp matchs
output_function [type : FUNCTION_REF, default : sub {} ] : the code to be applied to an atom, to generate the line to output. It takes in arguments the atom, and the list of keys keys_list : ($atom, @key_list)
See Libconf::Templates for the general list of methods you can call on this template.
There is no specific methods