The description of Config::Generic::{Element, *Section, Directive}
assumes that the parsetree was verified using
Config::Generic-verify()>. If this is not the case, you may
experience unexpected behaviour.

This is because the verify method does more than verifying. It
also ``marks'' some elements in a special way. For example, if you
have a specification

MultiDirective alias /w+/

and a configuration

alias foo

you might think that you can skip the verification because you
know that the configuration conforms to the specification. But
this is not the case. verify() will also mark the directive alias
as multiple (because this cannot be concluded from the configuration)
so the access methods change. If you have tied the configuration, you
will get

$config->{alias} = "foo"

before the verify call and

$config->{alias} = [ "foo" ]

after the verify call. This is intended behaviour, because an
element that might be specified multiple should always be
accessed as if it is.

Note: ``foo'' is a placeholder for an Config::Generic::Directive object
that evaluates to ``foo'' in a string context.