The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Config::YAMLMacros - Include file and string subsitution for YAML configuration files

SYNOPSIS

use Config::YAMLMacros;

my $config = get_config('/some/file');

DESCRIPTION

This module is a wrapper around loading YAML configuration files. It does several things:

expand tabs

Initial tabs on lines are expanded so that YAML doesn't choke on invisible variations in whitespace.

join sections

The YAML file may be split into sections, divided with --- lines. The sections will be merged together to create the final result.

string replacements

You can declare string replacements to use for the rest of the file. For example:

 ---
 REPLACE:
   %FOO%:       BAR
 ---

You can declare string replacements where the value of the replacement string is evaluated as a perl expression:

 ---
 EVAL_REPLACE:
   %FOO%:       $ENV{HOME}
 ---

You can turn off the replacements with a NO_REPLACE directive:

 ---
 NO_REPLACE: %FOO%
 ---

include files

You can include additional files as part of your configuration file. They will be merged in.

 ---
 INCLUDE: filename.yml
 ---

You can specify that the new file override stuff that has already been seen in the current file:

 ---
 OVERRIDE_FROM: filename.yml
 ---

=

For the INCLUDE, OVERRIDE_FROM, and NO_REPLACE directives, they can be either lists or a single item:

 ---
 OVERRIDE_FROM:
   - file1.yml
   - file2.yml
 NO_REPLACE:
   - %FOO%
   - %BAR%
 INCLUDE: justone.yml
 ---

These new directives need to be in a yaml block all by themselves (delimited by ---).

LICENSE

This package may be used and redistributed under the terms of either the Artistic 2.0 or LGPL 2.1 license.