NAME
Config::Model::Backend::PerlFile - Read and write config as a Perl data structure
VERSION
version 2.155
SYNOPSIS
use
Config::Model ;
use
Data::Dumper ;
# define configuration tree object
my
$model
= Config::Model->new ;
$model
->create_config_class (
name
=>
"MyClass"
,
element
=> [
[
qw/foo bar/
] => {
type
=>
'leaf'
,
value_type
=>
'string'
},
baz
=> {
type
=>
'hash'
,
index_type
=>
'string'
,
cargo
=> {
type
=>
'leaf'
,
value_type
=>
'string'
,
},
},
],
rw_config
=> {
backend
=>
'perl_file'
,
config_dir
=>
'/tmp'
,
file
=>
'foo.pl'
,
auto_create
=> 1,
},
) ;
my
$inst
=
$model
->instance(
root_class_name
=>
'MyClass'
);
my
$root
=
$inst
->config_root ;
my
$steps
= 'foo=yada bar=
"bla bla"
baz:en=hello
baz:fr=bonjour baz:hr=
"dobar dan"
';
$root
->load(
steps
=>
$steps
) ;
$inst
->write_back ;
Now, /tmp/foo.pl
contains:
{
bar
=>
'bla bla'
,
baz
=> {
en
=>
'hello'
,
fr
=>
'bonjour'
,
hr
=>
'dobar dan'
},
foo
=>
'yada'
}
DESCRIPTION
This module is used directly by Config::Model to read or write the content of a configuration tree written with Perl syntax in Config::Model
configuration tree.
Note:
Undefined values are skipped for list element. I.e. if a list element contains
('a',undef,'b')
, the data structure contains'a','b'
.Perl file is not created (and may be deleted) when no data is to be written.
backend parameter
config_dir
Mandoatory parameter to specify where is the Perl configuration file.
CONSTRUCTOR
new
Inherited from Config::Model::Backend::Any. The constructor is called by Config::Model::BackendMgr.
read
Of all parameters passed to this read call-back, only ifile_path
is used. This parameter must be IO::File object already opened for read.
It can also be undef. In which case read
returns 0.
When a file is read, read
returns 1.
write
Of all parameters passed to this write call-back, only file_path
is used. This parameter must be a Path::Tiny object.
write
returns 1.
AUTHOR
Dominique Dumont, (ddumont at cpan dot org)
SEE ALSO
Config::Model, Config::Model::BackendMgr, Config::Model::Backend::Any,
AUTHOR
Dominique Dumont
COPYRIGHT AND LICENSE
This software is Copyright (c) 2005-2022 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999