Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
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
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 cooling their heels in the Monastery: (12)
As of 2014-10-20 11:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (75 votes), past polls