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 the Libconf::Templates::Keyvalue manpage 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 the Libconf::Templates manpage for the general list of methods you can call on this template.
There is no specific methods