++ed by:

1 PAUSE user

עידו פרלמוטר (Ido Perlmuter)


Brannigan::Tree - A Brannigan validation/parsing scheme tree, possibly built from a series of inherited schemes.


This module is used internally by Brannigan. Basically, a tree is a validation/parsing scheme in its "final", workable structure, taking any inherited schemes into account. The actual validation and parsing of input is done by this module.


new( $scheme | @schemes )

Creates a new Brannigan::Tree instance from one or more schemes.


process( \%params )

Validates and parses the hash-ref of input parameters. Returns a hash-ref of the parsed input, possibly containing a '_rejects' hash-ref with a list of failed validations for each failed parameter.

validate( \%params )

Validates the hash-ref of input parameters and returns a hash-ref of rejects (i.e. failed validation methods) for each parameter.

parse( \%params, \%param_rules, [\%group_rules] )

Receives a hash-ref of parameters, a hash-ref of parameter rules (this is the 'params' part of a scheme) and optionally a hash-ref of group rules (this is the 'groups' part of a scheme), parses the parameters according to these rules and returns a hash-ref of all the parameters after parsing.


Brannigan, Brannigan::Validations.


Ido Perlmuter, <ido at ido50 dot net>


Please report any bugs or feature requests to bug-brannigan at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Brannigan. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

        perldoc Brannigan::Tree

You can also look for information at:


Copyright 2017 Ido Perlmuter

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.