my $config = config( bool => true, token => 'a single string', value => [ 'a', 'list', 'of', 'strings' ], blah => store( # This function leaves a "constructor" in the config, that generates a new object when traversed. key => val, ... # Object typed and configured by these arguments... ), ... ); ... my $object = Type->new($config); # As Type builds an object, it references $config->value(), $config->token()... ... my $widget = $config->{path/to/some/nested/doohickey}; # This is actually a nested tree traversal underneath... my $thingy = $widget->evaluate($with_this_context);