-
-
25 Sep 2005 17:00:24 UTC
- Distribution: Config-YAML
- Module version: 1.42
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (3)
- Testers (6 / 0 / 0)
- Kwalitee
Bus factor: 0- 84.06% Coverage
- License: unknown
- Activity
24 month- Tools
- Download (5.82KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
++ed by:1 non-PAUSE user- Dependencies
- Test::More
- YAML
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
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 isoutput
, 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]
andset_[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 bynew(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
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.
Module Install Instructions
To install Config::YAML, copy and paste the appropriate command in to your terminal.
cpanm Config::YAML
perl -MCPAN -e shell install Config::YAML
For more information on module installation, please visit the detailed CPAN module installation guide.