NAME Params::Profile - module for registering Parameter profiles SYNOPSIS package Foo::Bar; use Params::Profile; ### Single profile Params::Profile->register_profile( 'method' => 'subroto', 'profile' => { testkey1 => { required => 1 }, testkey2 => { required => 1, allow => qr/^\d+$/, }, testkey3 => { allow => qr/^\w+$/, }, }, ); sub subroto { my (%params) = @_; return unlesss Params::Profile->validate('params' => \%params); ### DO SOME STUFF HERE ... } my $profile = Params::Profile->get_profile('method' => 'subroto'); ### Multiple Profile Params::Profile->register_profile( 'method' => 'subalso', 'profile' => [ 'subroto', { testkey4 => { required => 1 }, testkey5 => { required => 1, allow => qr/^\d+$/, }, testkey6 => { allow => qr/^\w+$/, }, }, ], ); sub subalso { my (%params) = @_; ### Checks parameters agains profile of subroto and above registered ### profile return unlesss Params::Profile->validate('params' => \%params); ### DO SOME STUFF HERE ... } DESCRIPTION Params::Profile provides a mechanism for a centralised Params::Check or a Data::FormValidater profile. You can bind a profile to a class::subroutine, then, when you are in a subroutine you can simply call Params::Profile->check($params) of Params::Profile->validate($params) to validate against this profile. Validate will return true or false on successfull or failed validation. Check will return what "Data::FormValidator" or "Params::Check" would return. (For "Params::Check" this is simply a hash with the validated parameters , for "Data::FormValidator", this is a "Data::FormValidator::Results" object) Object Methods Params::Profile->register_profile('method' => $method, 'profile' => $profile [, caller => $callerclass ) Register a new profile for method for the called-from caller class. Instead of a profile, you could give a STRING containing the method from which you want to use the profile...or simpler saying: make an alias to a profile. You can also give an ARRAYREF containing both strings (defining the aliases) and HASHREFS, defining profiles which then will be combined (See second example in SYNOPSYS). When you provide the optional caller option, you define the class where the given method is defined. Params::Profile->get_profile( method => $method [, caller => $caller ]); Returns the profile registered for $method, or when no $method is given, returns the profile for caller. Params::Profile->verify_profiles( \@methods ); Verifies for each method in list, if the profile exists. Returns undef when it doesn't. Also checks for aliases which point to no existing profiles. Params::Profile->clear_profiles(); Clear the loaded profiles. Params::Profile->get_profiles() Just return a hash containing all the registered profiles, it is in the form: method => [ \%profile ] Params::Profile->validate( params => %params [, method => $method ] ) When given an hash of key->value pairs, this sub will check the values against the loaded profile. Returns true when it validates, otherwise returns false. It will check against the loaded profile for the given method, or when method doesn't exist, against the caller Params::Profile->check( params => %params [, method => $method ] ) When given an hash of key->value pairs, this sub will check the values against the loaded profile. It will check against the loaded profile for the given method, or when method doesn't exist, against the caller. Depending on the used profile, it will return %hash with values for a Params::Check profile. Or an object Data::FormValidator::Results when the laoded profile is a Data::FormValidator profile. AUTHOR This module by Michiel Ootjers . and Jos Boumans . ACKNOWLEDGEMENTS Thanks to Jos Boumans for "Params::Check", and the authors of "Data::FormValidator" COPYRIGHT This module is copyright (c) 2002 Michiel Ootjers . All rights reserved. This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.