Exception Handling, Logging, and Parameter Validation 43

Params::Validate

use Params::Validate qw( validate SCALAR UNDEF );

my %p = 
    validate
        ( @_,
          { foo => { type => SCALAR | UNDEF },
            bar => { isa => 'Bar' },
            baz => { can => 'print' },
            color =>
            { regex => qr/^(?:red|blue)$/ },
        );
continued...