Config::Model::DumpAsData - Dump configuration content as a perl data structure
Contents
Constructor
new
No parameter. The constructor should be used only by Config::Model::Node.
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
perl v5.40.0 2024-11-30 Config::Model::DumpAsData(3pm)
Description
This module is used directly by Config::Model::Node to dump the content of a configuration tree in perl
data structure.
The perl data structure is a hash of hash. Only CheckList content is stored in an array ref.
User can pass a sub reference to apply to values of boolean type. This sub can be used to convert the
value to an object representing a boolean like boolean. (since 2.129)
Note that undefined values are skipped for list element. I.e. if a list element contains
"('a',undef,'b')", the data structure then contains 'a','b'.
Methods
dump_annotations_as_pod
Return a string formatted in pod (See perlpod) with the annotations.
Parameters are:
node
Reference to a Config::Model::Node object. Mandatory
check_list
Yes, no or skip
Name
Config::Model::DumpAsData - Dump configuration content as a perl data structure
See Also
Config::Model,Config::Model::Node,Config::Model::ObjTreeScanner
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',
},
},
],
) ;
my $inst = $model->instance(root_class_name => 'MyClass' );
my $root = $inst->config_root ;
# put some data in config tree the hard way
$root->fetch_element('foo')->store('yada') ;
$root->fetch_element('bar')->store('bla bla') ;
$root->fetch_element('baz')->fetch_with_id('en')->store('hello') ;
# put more data the easy way
my $steps = 'baz:fr=bonjour baz:hr="dobar dan"';
$root->load( steps => $steps ) ;
print Dumper($root->dump_as_data);
# $VAR1 = {
# 'bar' => 'bla bla',
# 'baz' => {
# 'en' => 'hello',
# 'fr' => 'bonjour',
# 'hr' => 'dobar dan'
# },
# 'foo' => 'yada'
# };
Version
version 2.155
