Config::Model::Backend::PlainFile - Read and write config as plain file
version 2.126
use Config::Model; my $model = Config::Model->new; my $inst = $model->create_config_class( name => "WithPlainFile", element => [ [qw/source new/] => { qw/type leaf value_type uniline/ }, ], rw_config => { backend => 'plain_file', config_dir => '/tmp', }, ); my $inst = $model->instance(root_class_name => 'WithPlainFile' ); my $root = $inst->config_root ; $root->load('source=foo new=yes' ); $inst->write_back ;
Now /tmp directory contains 2 files: source and new with foo and yes inside.
/tmp
source
new
foo
yes
This module is used directly by Config::Model to read or write the content of a configuration tree written in several files. Each element of the node is written in a plain file.
Element values are written in one or several files depending on their type.
The leaf value is written in one file. This file can have several lines if the leaf type is string
string
The list content is written in one file. Each line of the file is a value of the list.
Not supported
By default, the configuration file is named after the element name (like in synopsis above).
The file parameter can also be used to specify a file name that take into account the path in the tree using &index() and &element() functions from Config::Model::Role::ComputeFunction.
file
&index()
&element()
For instance, with the following model:
class_name => "Foo", element => [ string_a => { type => 'leaf', value_type => 'string'} string_b => { type => 'leaf', value_type => 'string'} ], rw_config => { backend => 'PlainFile', config_dir => 'foo', file => '&element(-).&element', file_mode => 0644, # optional }
If the configuration is loaded with example string_a=something string_b=else, this backend writes "something" in file example.string_a and else in file example.string_b.
example string_a=something string_b=else
something
example.string_a
else
example.string_b
file_mode parameter can be used to set the mode of the written file. file_mode value can be in any form supported by "chmod" in Path::Tiny.
file_mode
Called by read method to read the file of a leaf element. args contains the arguments passed to read method.
args
Like read_leaf for hash elements.
Like read_leaf for list elements.
write() writes a file for each element of the calling class. Works only for leaf and list elements. Other element type are skipped. Always return 1 (unless it died before).
write()
Dominique Dumont, (ddumont at cpan dot org)
Config::Model, Config::Model::BackendMgr, Config::Model::Backend::Any,
Dominique Dumont
This software is Copyright (c) 2005-2018 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999
To install Config::Model, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Config::Model
CPAN shell
perl -MCPAN -e shell install Config::Model
For more information on module installation, please visit the detailed CPAN module installation guide.