
Moosex::params::validate is a perl module that enables moose programs to validate method parameters, ensuring that incoming parameters are of the appropriate moose types and roles.
this module is one of many developing options to do this sort of thing; see moosex::method::signatures (libmoosex-method-signatures-perl) and moosex::declare (libmoosex-declare-perl) for others.