Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

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.

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
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.


    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?

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2015-11-28 16:40 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (743 votes), past polls