Config::Model::Loader man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Config::Model::Loader(User Contributed Perl DocumentatConfig::Model::Loader(3)

NAME
       Config::Model::Loader - Load serialized data into config tree

VERSION
       version 1.235

SYNOPSIS
	use Config::Model;
	use Log::Log4perl qw(:easy);
	Log::Log4perl->easy_init($WARN);

	# define configuration tree object
	my $model = Config::Model->new;
	 $model->create_config_class(
	   name	   => "Foo",
	   element => [
	       [qw/foo bar/] => {
		   type	      => 'leaf',
		   value_type => 'string'
	       },
	   ]
	);

	$model ->create_config_class (
	   name => "MyClass",

	   element => [

	       [qw/foo bar/] => {
		   type	      => 'leaf',
		   value_type => 'string'
	       },
	       hash_of_nodes => {
		   type	      => 'hash',     # hash id
		   index_type => 'string',
		   cargo      => {
		       type		 => 'node',
		       config_class_name => 'Foo'
		   },
	       },
	       [qw/lista listb/] => {
				     type => 'list',
				     cargo =>  {type => 'leaf',
						value_type => 'string'
					       }
				     },
	   ],
	) ;

	my $inst = $model->instance(root_class_name => 'MyClass' );

	my $root = $inst->config_root ;

	# put data
	my $step = 'foo=FOO hash_of_nodes:fr foo=bonjour -
	  hash_of_nodes:en foo=hello
	  ! lista=foo,bar lista:2=baz
	    listb:0=foo listb:1=baz';
	$root->load( step => $step );

	print $root->describe,"\n" ;
	# name	       value	    type	 comment
	# foo	       FOO	    string
	# bar	       [undef]	    string
	# hash_of_nodes <Foo>	     node hash	  keys: "en" "fr"
	# lista	       foo,bar,baz  list
	# listb	       foo,baz	    list

	# delete some data
	$root->load( step => 'lista~2' );

	print $root->describe(element => 'lista'),"\n" ;
	# name	       value	    type	 comment
	# lista	       foo,bar	    list

	# append some data
	$root->load( step => q!hash_of_nodes:en foo.=" world"! );

	print $root->grab('hash_of_nodes:en')->describe(element => 'foo'),"\n" ;
	# name	       value	    type	 comment
	# foo	       "hello world" string

DESCRIPTION
       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.

CONSTRUCTOR
   new ( )
       No parameter. The constructor should be used only by
       Config::Model::Node.

load string syntax
       The string is made of the following items (also called "actions")
       separated by spaces:

       -       Go up one node

       !       Go to the root node of the configuration tree.

       xxx     Go down using "xxx" element. (For "node" type element)

       xxx:yy  Go down using "xxx" element and id "yy" (For "hash" or "list"
	       element with "node" cargo_type)

       xxx=~/yy/
	       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.

       xxx~yy  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.

       xxx=zz  Set element "xxx" to value "yy". load also accepts to set
	       elements with a quoted string. (For "leaf" element)

	       For instance "foo="a quoted string"". Note that you cannot
	       embed double quote in this string. I.e "foo="a \"quoted\"
	       string"" will fail.

       xxx~    Undef element "xxx"

       xxx=z1,z2,z3
	       Set list element "xxx" to list "z1,z2,z3". Use ",," for undef
	       values, and "" for empty values.

	       I.e, for a list "('a',undef,'','c')", use "a,,"",c".

       xxx:yy=zz
	       For "hash" element containing "leaf" cargo_type. Set the leaf
	       identified by key "yy" to value "zz".

	       Using "xxx=~/yy/=zz" is also possible.

       xxx.=zzz
	       Will append "zzz" value to current values (valid for "leaf"
	       elements).

       xxx#zzz or xxx:yyy#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.

Methods
   load ( ... )
       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).

       Parameters are:

       node
	   node ref of the root of the tree (of sub-root) to start the load
	   from.

       step
	   A string or an array ref containing the steps to load. See above
	   for a description of the string.

       experience
	   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.

AUTHOR
       Dominique Dumont, (ddumont at cpan dot org)

SEE ALSO
       Config::Model,Config::Model::Node,Config::Model::Dumper

perl v5.14.1			  2011-07-22	      Config::Model::Loader(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net