Thanks for clarifying however I'm still unsure what a Perl 6 user
should expect to get back from running $string.match(/pat/). This is
the ""one
high-level call to the .match method" yes? So it should be returning a
List of Str (or List of Match in case of capture groups), is this
correct? I ask because in the current Rakudo implementation it returns
the Match object (what I would expect from the "one low-level run of
the regex engine").

Best Regards,
-Chris

On Thu, Sep 18, 2008 at 11:52 PM, Larry Wall <[EMAIL PROTECTED]> wrote:
> On Thu, Sep 18, 2008 at 06:11:45PM +0800, Chris Davaz wrote:
> : I'm trying to pin down what $string.match(/pat/) should be returning.
> :
> : >From S05:
> :
> : Under "Return values from match objects"
> : "A match always returns a Match object..."
> :
> : >From S29:
> :
> : Under the definition of Str.comb
> :
> : Saying
> :
> :     $string.comb(/pat/, $n)
> :
> : is equivalent to
> :
> :     $string.match(rx:global:x(0..$n):c/pat/)
> :
> : [ ...and later... ]
> :
> : "If there are captures in the pattern, a list of Match objects (one
> : per match) is returned instead of strings."
> :
> : Which implies that $string.match(/pat/) should indeed return a List of
> : Str and $string.match(/pat_with_groups/) should return a List of
> : Match.
> :
> : I expected the S29 definition when first approaching $string.match I
> : feel it is more intuitive than what happens with S05. Could someone
> : clarify what the behavior should be?
>
> S05 is using a different definition of "match".  In S05 it means
> more like "one low-level run of the regex engine" rather than "one
> high-level call to the .match method".  In other words, the .match
> method can do multiple matches.
>
> Larry
>

Reply via email to