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

NAME

Config::Layered::Source::ENV - The Environment Variable Source

DESCRIPTION

The ENV source provides configuration through environment variables.

For each top-level key in the default data structure, it checks for the environment variable CONFIG_$KEY where $KEY is the name of the key used in the default data structure.

EXAMPLE

    my $config = Config::Layered->load_config( 
        default => {
            foo         => "bar",
            blee        => "baz",
            bax         => {
                chicken => "eggs",
            }
        }
    );

With the above configuration, the following keys will be checked:

  • CONFIG_FOO

  • CONFIG_BLEE

  • CONFIG_BAX

The following would *NOT* be checked:

  • CONFIG_CHICKEN

Given the above default data structure, a command run as CONFIG_FOO="Hello World" ./myprogram would result in a $config structure like this:

    {
        foo         => "Hello World",
        blee        => "baz",
        bax         => {
            chicken => "eggs",
    }

SOURCE ARGUMENTS

  • params is an array ref of keys to check Default: Keys of the default data structure.

  • prefix is a word prepended to your key that is used to check $ENV{$prefix . "_" . uc($key) }.

Example:

    Config::Layered->load_config(
        sources => [ 
            'ENV' => { prefix => "MYAPP", params => [qw( bar blee )] } 
        ],
        default => { debug => 0, verbose => 1 },
    );

The following keys would be checked:

  • MYAPP_BAR

  • MYAPP_BLEE

  • MYAPP_DEBUG

  • MYAPP_VERBOSE