Config::Model::Loader - Load serialized data into config tree
version 1.208
use Config::Model ; # create your config model my $model = Config::Model -> new ; $model->create_config_class( ... ) ; # create instance my $inst = $model->instance (root_class_name => 'FooBar', instance_name => 'test1'); # create root of config my $root = $inst -> config_root ; # put some data in config tree my $step = 'std_id:ab X=Bv - std_id:bc X=Av - a_string="toto tata"'; $root->load( step => $step ) ;
This module is used directly by Config::Model::Node to load serialized configuration data into the configuration tree.
Serialized data can be written by the user or produced by Config::Model::Dumper while dumping data from a configuration tree.
No parameter. The constructor should be used only by Config::Model::Node.
The string is made of the following items (also called actions) separated by spaces:
actions
Go up one node
Go to the root node of the configuration tree.
Go down using xxx element. (For node type element)
xxx
node
Go down using xxx element and id yy (For hash or list element with node cargo_type)
yy
hash
list
Go down using xxx element and loop over the ids that match the regex. (For hash)
For instance, with OpenSsh model, you could do
Host=~/.*.debian.org/ user='foo-guest'
to set "foo-user" users for all your debian accounts.
Delete item referenced by xxx element and id yy. For a list, this is equivalent to splice xxx,yy,1. This command does not go down in the tree (since it has just deleted the element). I.e. a '-' is generally not needed afterwards.
splice xxx,yy,1
-
Set element xxx to value yy. load also accepts to set elements with a quoted string. (For leaf element)
leaf
For instance foo="a quoted string". Note that you cannot embed double quote in this string. I.e foo="a \"quoted\" string" will fail.
foo="a quoted string"
foo="a \"quoted\" string"
foo='' will set foo to undef.
foo=''
undef
Set list element xxx to list z1,z2,z3. Use ,, for undef values, and "" for empty values.
z1,z2,z3
,,
""
I.e, for a list ('a',undef,'','c'), use a,,"",c.
('a',undef,'','c')
a,,"",c
For hash element containing leaf cargo_type. Set the leaf identified by key yy to value zz.
zz
Using xxx=~/yy/=zz is also possible.
xxx=~/yy/=zz
Will append zzz value to current values (valid for leaf elements).
zzz
Element annotation. Can be quoted or not quoted. Note that annotations are always placed at the end of an action item.
I.e. foo#comment, foo:bar#comment or foo:bar=baz#comment are valid. foo#comment:bar is not valid.
foo#comment
foo:bar#comment
foo:bar=baz#comment
foo#comment:bar
Load data into the node tree (from the node passed with node) and fill values as we go following the instructions passed with step. (step can also be an array ref).
step
Parameters are:
node ref of the root of the tree (of sub-root) to start the load from.
A string or an array ref containing the steps to load. See above for a description of the string.
Specify the experience level used during the load (default: master). The experience can be intermediate advanced master. The load will raise an exception if the step of the load string tries to access an element with experience higher than user's experience.
master
intermediate advanced master
Dominique Dumont, (ddumont at cpan dot org)
Config::Model,Config::Model::Node,Config::Model::Dumper
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.