http://www.perlmonks.org?node_id=412703


in reply to Re^2: Use method/function signatures with Perl
in thread Use method/function signatures with Perl

Aha. I knew someone must have had the same general idea before! Thank you for that link. I only have a tiny gripe with it vs. my ideal verifier, which is that Params::Validate only validates, where as what I wrote above would imply validation and returning of the validated parameters (rolling two operations into one).

I'm certainly not about to reinvent a wheel over something so minor, though. The module you recommended will work nicely. Thanks again!

Update: this is what I get for merely scanning the POD before posting. As xdg points out, Params::Validate does everything I have wished for:

use Params::Validate; sub foobar { my ($foo, $bar) = validate_pos ( @_, {type = SCALAR, regex=>/.+/}, {type = HASH_REF} ); print "Using $foo:\n"; return $foo unless %$bar; for (keys %$bar) { print "$_ => $$bar{$_}\n" } return $$bar{'result'}; }

is equivalent to my earlier code.

radiantmatrix
require General::Disclaimer;
s//2fde04abe76c036c9074586c1/; while(m/(.)/g){print substr(' ,JPacehklnorstu',hex($1),1)}

Replies are listed 'Best First'.
Re^4: Use method/function signatures with Perl
by xdg (Monsignor) on Dec 06, 2004 at 19:52 UTC

    I think if you read the POD closely, you'll see Params::Validate does what you want. E.g. (from the POD,

    my @p = validate( @_, 1, { default => 99 } );

    You can also set a global on_fail callback to die however you want.

    -xdg

    Code posted by xdg on PerlMonks is public domain. It has no warranties, express or implied. Posted code may not have been tested. Use at your own risk.