Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Config::YAML(3)	      User Contributed Perl Documentation      Config::YAML(3)

NAME
       Config::YAML - Simple configuration automation

VERSION
       Version 1.42

SYNOPSIS
       Config::YAML is a somewhat object-oriented wrapper around the YAML
       module which makes reading and writing configuration files simple.
       Handling	multiple config	files (e.g. system and per-user	configuration,
       or a gallery app	with per-directory configuration) is a snap.

	   use Config::YAML;

	   # create Config::YAML object	with any desired initial options
	   # parameters; load system config; set alternate output file
	   my $c = Config::YAML->new( config =>	"/usr/share/foo/globalconf",
				      output =>	"~/.foorc",
				      param1 =>	value1,
				      param2 =>	value2,
				      ...
				      paramN =>	valueN,
				    );

	   # integrate user's own config
	   $c->read("~/.foorc");

	   # integrate command line args using Getopt::Long
	   $rc = GetOptions ( $c,
			      'param1|p!',
			      'param2|P',
			      'paramN|n',
			    );

	   # Write configuration state to disk
	   $c->write;

	   # simply get	params back for	use...
	   do_something() unless $c->{param1};
	   # or	get them more OO-ly if that makes you feel better
	   my $value = $c->get_param2;

METHODS
   new
       Creates a new Config::YAML object.

	   my $c = Config::YAML->new( config =>	initial_config,
				      output =>	output_config
				    );

       The "config" parameter specifies	the file to be read in during object
       creation. It is required, and must be the first parameter given.	If the
       second parameter	is "output", then it is	used to	specify	the file to
       which configuration data	will later be written out.  This positional
       dependancy makes	it possible to have parameters named "config" and/or
       "output"	in config files.

       Initial configuration values can	be passed as subsequent	parameters to
       the constructor:

	   my $c = Config::YAML->new( config =>	"~/.foorc",
				      foo    =>	"abc",
				      bar    =>	"xyz",
				      baz    =>	[ 1, 2,	3 ],
				    );

   get_*/set_*
       If you'd	prefer not to directly molest the object to store and retrieve
       configuration data, autoloading methods of the forms "get_[param]" and
       "set_[param]" are provided. Continuing from the previous	example:

	   print $c->get_foo;	   # prints "abc"
	   my $val = $c->get_quux; # $c->{quux}	doesn't	exist; returns undef

	   $c->set_bar(30);	# $c->{bar} now	equals 30, not "xyz"
	   my @list = qw(alpha beta gamma);
	   $c->set_baz(\@list);	# $c->{baz} now	a reference to @list

   fold
       Convenience method for folding multiple values into the config object
       at once.	Requires a hashref as its argument.

	   $prefs{theme}  = param(theme);
	   $prefs{format} = param(format);
	   $prefs{sortby} = param(order);

	   $c->fold(\%prefs);

	   my $format =	$c->get_format;	# value	matches	that of	param(format)

   read
       Imports a YAML-formatted	config file.

	   $c->read('/usr/share/fooapp/fooconf');

       "read()"	is called at object creation and imports the file specified by
       "new(config=>)",	so there is no need to call it manually	unless
       multiple	config files exist.

   write
       Dump current configuration state	to a YAML-formatted flat file.

	   $c->write;

       The file	to be written is specified in the constructor call. See	the
       "new" method documentation for details.

DEPRECATED METHODS
       These methods have been superceded and will likely be removed in	the
       next release.

   get
       Returns the value of a parameter.

	   print $c->get('foo');

   set
       Sets the	value of a parameter:

	   $c->set('foo',1);

	   my @paints =	qw( oil	acrylic	tempera	);
	   $c->set('paints', \@paints);

AUTHOR
       Shawn Boyette ("<mdxi@cpan.org>")

       Original	implementation by Kirrily "Skud" Robert	(as
       "YAML::ConfigFile").

BUGS
       o   Config::YAML	ignores	the YAML document separation string ("---")
	   because it has no concept of	multiple targets for the data coming
	   from	a config file.

       Please report any bugs or feature requests to
       "bug-yaml-configfile@rt.cpan.org", or through the web interface at
       <http://rt.cpan.org>.  I	will be	notified, and then you'll
       automatically be	notified of progress on	your bug as I make changes.

COPYRIGHT & LICENSE
       Copyright 2004 Shawn Boyette, All Rights	Reserved.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.0			  2005-09-25		       Config::YAML(3)

NAME | VERSION | SYNOPSIS | METHODS | DEPRECATED METHODS | AUTHOR | BUGS | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Config::YAML&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help