NAME

Config::Tree::Var - Read configuration tree from Perl data structure

SYNOPSIS

use Config::Tree::Var;

my $tree = {
   foo => {
       bar => 2,
       baz => 3,
   }
};

my $conf = Config::Tree::Var->new(
    tree => $var,
    # schema => ...,
    # when_invalid => ...
    # include_path_re => qr/.../,
    # exclude_path_re => qr/.../,
    ro => 0,
);
my $val = $conf->get('/foo/bar'); # 2
$conf->cd('/foo');
$conf->set('bar', 10); # same as set('/foo/bar', 10);

DESCRIPTION

ATTRIBUTES

METHODS

new(%args)

Construct a new Config::Tree::Var object. Arguments.

  • tree. Required. Perl data structure that contains the tree. Must be a hashref.

  • ro. Optional, default is 0. Whether we should disallow set() and save().

  • when_invalid. Optional, default is 'die'. What to do when file content does not validate with supplied schema. Choices: 'die', 'warn', 'quiet'.

  • exclude_path_re. Optional. When set, config path matching the regex will not be retrieved. See also: include_path_re.

  • include_path_re. Optional. When set, only config path matching the regex will be retrieved. Takes precedence over exclude_path_re.

  • schema. Optional. When specified, after the tree is retrieved, it will be validated against this schema using Data::Schema.

set($path, $val)

Set config variable in the tree.

save()

Does nothing. set() will already modify the Perl data structure.

SEE ALSO

Data::Schema, Config::Tree::Base

AUTHOR

Steven Haryanto, <stevenharyanto at gmail.com>

COPYRIGHT & LICENSE

Copyright 2009 Steven Haryanto, all rights reserved.

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