Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^3: Use method/function signatures with Perl

by radiantmatrix (Parson)
on Dec 06, 2004 at 17:28 UTC ( [id://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)}

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.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2024-03-19 06:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found