Config::Model::Backend::PerlFile - Read and write config as a Perl data structure
version 2.121
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:
/tmp/foo.pl
{ bar => 'bla bla', baz => { en => 'hello', fr => 'bonjour', hr => 'dobar dan' }, foo => 'yada' }
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.
Config::Model
Note:
Undefined values are skipped for list element. I.e. if a list element contains ('a',undef,'b'), the data structure contains 'a','b'.
('a',undef,'b')
'a','b'
Perl file is not created (and may be deleted) when no data is to be written.
Mandoatory parameter to specify where is the Perl configuration file.
Inherited from Config::Model::Backend::Any. The constructor is called by Config::Model::BackendMgr.
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.
ifile_path
It can also be undef. In which case read() returns 0.
read()
When a file is read, read() returns 1.
Of all parameters passed to this write call-back, only io_handle is used. This parameter must be IO::File object already opened for write.
io_handle
write() returns 1.
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.