Re: "automatically" wrapping methods.

[email protected] (Buddy Burden)
Newsgroups perl.moose
Message-ID <CAL0mxoSdV2auNimkK1nScnt8peC2Lp=QvoaQfwxUM4qRhSjRUA@mail.gmail.com>
Peter,

> However, I would prefer an interface where the signature is specified in the prototype slot of the sub:
>
>     sub foo (bar, baz) { ... }

Why don't you just use one of the signatures modules?  E.g.,

#! /usr/bin/perl

use MooseX::Declare;
use Method::Signatures::Modifiers;

class Foo
{
    method foo ($bar, $baz)
    {
        print $self->frobnabulate($bar, $baz);
    }
}

Foo->new->foo(1, 2, 3);

produces:

In call to Foo::foo(), was given too many arguments, it expects 2 at
t.pl line 13.

If you don't like the MooseX::Declare stuff, it should work equally
well with just Method::Signatures.  I'm pretty sure there's a place to
hook into MS or MSM somewhere post-compilation, but, if there isn't,
perhaps we could add it.

Maybe there's some reason this can't work that I'm not seeing, but it
seems to me like you're trying to solve a problem that's already been
solved pretty well, but in a roundabout way instead of using the known
solutions as a jumping off point.  Hopefully this can trigger a
lightbulb in your head, but, if not, feel free to ignore me. :-)


            -- Buddy
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.