NAME Params::Smart - use both positional and named arguments in a subroutine (deprecated) REQUIREMENTS The following non-core modules are required: Regexp::Common INSTALLATION Installation can be done using the traditional Makefile.PL method: perl Makefile.PL make test make install SYNOPSIS use Params::Smart 0.04; sub my_sub { %args = Params(qw( foo bar ?bo ?baz ))->args(@_); ... } my_sub( foo=> 1, bar=>2, bo=>3 ); # call with named arguments my_sub(1, 2, 3); # same, with positional args STATUS This module is deprecated. It has had no significant updates since 2007. DESCRIPTION This module provides "smart" parameter handling for subroutines without having to use a changed syntax or source filters. Features include: * Mixed use of named and positional parameters. * Type checking and coercion through callbacks. * Dyanmic parameters configured from callbacks. * Memoization of parameter templates. Compatability with Previous Versions Note that the formatting for simple parameter templates has changed since version 0.03, and the complex parameter templates were not implemented until version 0.04, so it is best to specify a minimum version in use statements use Params::Smart 0.04; 0.08 Wed Mar 21 2007 - added case where undef value used in positional parameter (thanks to Rick Westerman) - minor reorganization of POD SEE ALSO This module is superficially similar in function to Getargs::Mixed but does not require named parameters to have an initial dash ('-'). Class::NamedParams provides a framework for implementing named parameters in classes. Sub::NamedParams will create a named-parameter wrapper around subroutines which use positional parameters. The syntax of the parameter templates is inspired by Perl6::Subs, though not necessarily compatible. (See also Apocalypse 6 in Perl6::Bible). Sub::Usage inspired the error-messages returned by calls to arg(). Params::Validate is useful for (additional) parameter validation beyond what this module is capable of. Class::ParmList provides a framework for parameter validation as well. AUTHOR Robert Rothenberg Suggestions and Bug Reporting Feedback is always welcome. Please use the CPAN Request Tracker at http://rt.cpan.org to submit bug reports. There is a git repository at https://github.com/robrwo/perl-Params-Smart. LICENSE Copyright (c) 2005-2007, 2025 Robert Rothenberg. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.