theguvnor has asked for the wisdom of the Perl Monks concerning the following question:

Perhaps I am missing something, but in any case I'm confused.

TheDamian mentions in section What you match is what you get that there is a "result object" automatically created and stored in $0, which looks handy enough. He then goes on to talk about using $0 in both an array and hash context, so I assume that there's some kind of internal magic going on in the regex (grammar) engine. Sounds good so far.

But where I get confused is: he talks of array elements as $0[1], $0[2] etc. and hash elements as $0{out_marker} and so on. But I thought that in Perl 6 the variable sigils were immutable, so shouldn't that be e.g. @0[1] and %0{out_marker}??

If it's just a typo, well let's just say I'm in no position to criticize ;), but if not I would appreciate enlightenment... thanks!

..Jon

Replies are listed 'Best First'.
•Re: (Another) Typo in Exegesis 5 ?
by merlyn (Sage) on Aug 24, 2002 at 18:34 UTC
    Well, $0[1] in Perl6 is the same as $0.[1]: treat $0 as an array ref and call the "fetch element 1" method on it (whatever that's going to be called).

    So, while it may be incorrect, it's not necessarily wrong at face value. {grin}

    -- Randal L. Schwartz, Perl hacker

      Thanks Merlyn. As I was reading E5 this morning, I was thinking along those lines (treating the variables as references) (honest, I was!) so it's nice to know I wasn't too far off the mark. :^)

      ..Jon