Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^3: Use method/function signatures with Perl

by radiantmatrix (Parson)
on Dec 06, 2004 at 17:28 UTC ( #412703=note: print w/ replies, xml ) Need Help??


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)}


Comment on Re^3: Use method/function signatures with Perl
Download Code
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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://412703]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (13)
As of 2014-12-22 15:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (119 votes), past polls