On Thu, Jun 16, 2005 at 05:18:51PM -0400, John Siracusa wrote:
: Now in Perl 6 I'll want to use fancy named parameters and so on, but I don't
: want to lose the abilities described above.  How would those examples look
: in "native" Perl 6 code?  (i.e., Without forcing all methods to have a
: single slurpy [EMAIL PROTECTED] argument, emulating the Perl 5 mechanisms.)

Something like:

    # Do something then proceed with call "as usual"
    method foo ([EMAIL PROTECTED])
    {
      ./do_something_new(123, 'abc');
      ./SUPER::foo(@args);
    }

    # Pull off some args, do something, then proceed with call "as usual"
    method foo ()
    {
      ./do_something_else(val => delete %_<xyz>);
      ./SUPER::foo(%_);
    }

All methods get a slurpy %_ unless you declare your own.  But you probably
want to avoid "super" semantics and write that:

    method foo ()
    {
      ./do_something_else(val => %_<xyz>);
      next;
    }

I've also taken the liberty of deleting your delete, on the assumption
that your "next" method might want to see the same argument and do
something else with it.  A set of "next" methods need a consistent
parameter namespace in any event, so there's no harm in leaving the
parameter in %_, and some performance benefit in not doing something
better performed by GC (we hope).

Larry

Reply via email to