Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: RFC: New style for argument check in subs

by Anonymous Monk
on Sep 05, 2012 at 10:54 UTC ( #991807=note: print w/ replies, xml ) Need Help??


in reply to RFC: New style for argument check in subs

I'm trying to extend Damians PBP advices for unpacking and then checking arguments using the ternary-operator ...

Icky :)

1. to have a concise pattern to replace the (alas) missing sub-signatures in perl

Sub::Signatures, Method::Signatures

2. to be follow DRY practice

Params::Validate?

3. 4. 5. to be parsable for inspection and/or POD-creation and/or IDE-expansion.

??


Comment on Re: RFC: New style for argument check in subs
Replies are listed 'Best First'.
Re^2: RFC: New style for argument check in subs
by LanX (Canon) on Sep 05, 2012 at 11:38 UTC

    * Sub::Signatures,

    use Filter::Simple ???

    are you serious?

    * Method::Signatures

    use base 'Devel::Declare::MethodInstaller::Simple' ???

    are you serious?

    * Params::Validate

    nice but ...

    - overhead by extra sub call

    - parameters are unpacked into %p hash, i.e. you need to type $p{x} to access x adn you'll miss all the benefits of compiletime checks for lexicals like my $x.

    So any serious arguments other than clicking thru CPAN?

    Cheers Rolf

      use Filter::Simple ??? are you serious?

      absolutely, makes things much nicer

      use base 'Devel::Declare::MethodInstaller::Simple' ??? are you serious?

      absolutely, its for those who want sugar but not source filters -- schwern says its reliable

      nice but ... - overhead by extra sub call

      HA! are you serous? You can't be serious :)

      - parameters are unpacked into %p hash, i.e. you need to type $p{x} to access x

      this isn't the only usage, there is validate_pos, and even as Attribute::Params::Validate

      and you'll miss all the benefits of compiletime checks for lexicals like my $x.

      What compile-time checks?

      So any serious arguments other than clicking thru CPAN?

      You're looking for arguments about something? About what?

      Hey look, these are compile-time :) fields, Hash::Util::lock_keys, Sub::NamedParams

      If you're referring to so which pattern do you think is better? to me there really isn't much difference between them -- not that your mission makes sense to me

      Even if I'm typing this stuff myself, I'm fine with

      defined $pos1 or die "missing arg"; defined $pos2 or $pos2 = 42;

      but I wouldn't mix that and  my ($name1,$name2) = @arg{qw/name1 name2/};

      I would use a hash or a flatlist

      Method::Signatures -- yes, I am serious. It's good.

      Method::Signatures::Simple -- yes, I am serious again. It's still good.

      The computer can handle working harder. You can't.

          -- Chip Salzenberg, Free-Floating Agent of Chaos

        I don't deny it's good, but I have serious problems with such dependencies.

        If it' so good make it core and I'll use it as soon as Debian supports the perlversion.

        In the meantime I like a good style which works w/o XS dependencies.

        Cheers Rolf

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (9)
As of 2015-07-30 09:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (270 votes), past polls