in reply to Re: An Exegesis 4 thought
in thread An Exegesis 4 thought

Will @_ then act as the default array in Perl 6? I wasn't sure about this, given how references have thus far been described.

Could the default behavior possibly be dealt with like the following? (assuming I'm remembering correctly that @_ is still going to be the default argument array for subrutines whse arguments haven't been otherwise specified)

sub foo { my $bar = .shift // "some default"; my $baz = .pop // "some other default"; }

Replies are listed 'Best First'.
Re: Re: Re: An Exegesis 4 thought
by Juerd (Abbot) on Apr 08, 2002 at 07:23 UTC

    I wonder why @_ in subs would still be needed. IIRC, you can write:

    sub foo ($bar //= "some default", $bar //= "blah") { ... }

    U28geW91IGNhbiBhbGwgcm90MTMgY
    W5kIHBhY2soKS4gQnV0IGRvIHlvdS
    ByZWNvZ25pc2UgQmFzZTY0IHdoZW4
    geW91IHNlZSBpdD8gIC0tIEp1ZXJk
    

      Oh I agree, but it seems the issue here is Perl 5 backwards compatibility.
      Ah. That one's easy. Consider the following snippet of Perl 5 code:
      sub foo { my $bar = shift; my %baz = @_; ... }
      If you get rid of @_ and the defaulting behaviour of shift/pop et al how do you do a programmatic conversion to Perl 6?

      Of course, once you've got it autoconverted to perl 6 you'd go through and change it to

      sub foo($bar, %baz) { ... }
      But having running code which you can test is important.