Em Sex, 2009-09-25 às 18:28 +0200, Moritz Lenz escreveu:
> class A { method m { say 'OH HAI' } };
> my $m = A.new.^methods(:local).[0];
> How should I invoke $m?
> In current Rakudo this works:
> $m(A.new);    # supply the invocant as first argument
> But shouldn't be just $m() (invocant magically curried) or may
> $m(A.new:) (invocant not curried, but marked with a colon)?

Methods are only methods when they are dispatched as methods, otherwise
they are regular subs. The invocant in the capture is just the first
positional argument, so $m(A.new) is what you want, although $m(A.new: )
should have the same effect.


Reply via email to