> Let me ask you:
   > 
   >    foo('a','b', 'c')
   > 
   > Is 'b' the 1st parameter or the 2nd?

This is the classical mistake of confusing indices and ordinals.
The 1st argument is bound to the parameter whose index is [0],
The 2nd argument is bound to the parameter whose index is [1], etc.

So, yes, 'b' is obviously the second argument when we're speaking
in ordinal. But it is accessed as $_[1] (or ^1) when we're writing Perl.


   > And when a newbie, not one of the oldtimers whose been part of
   > perl6 since Damian's RFC came out. Would they think that the second
   > and third arguments were added or the first and second?

Assuming they've read L<perlcurry>, they'll know that ^1 is $_[1] is
parameter [1] is the 2nd parameter. They'll know because at the very start
of L<perlcurry> I will write:

        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]
        ^1 means $_[1], NOT $_[0]

:-)

Damian

Reply via email to