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