The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Config::Neat::Schema - Validate Config::Neat files against schema

SYNOPSIS

File 01.nconf:

foo {
    bar         baz etc

    etc {
        pwd     1 2
    }
}
abc             def

File schema.nconf:

foo
{
    bar         ARRAY
    etc
    {
        *       ARRAY
        pwd     STRING
    }
}
data            DATA

if file 01.nconf is validated against schema.nconf, it will: 1) convert arrays to strings for the known nodes with 'STRING' type 2) die or warn (depending on the settings) when an unknown node is found (in the example above, 'abc').

'*' as the name of the node means 'node with any name'. If such catch-all rule is not specified, all possible node values need to be specified explicitly.

Possible type specifiers are: HASH (this is default if not specified), ARRAY, STRING, ARRAY_OR_HASH, STRING_OR_HASH, or DATA. 'DATA' nodes may contain any arbitrary data structure and are not validated.