On Mon, May 09, 2005 at 09:47:14AM -0600, Paul Seamons wrote:
: > =item *
: >
: > Quantifiers (except C<?> and C<??>) cause a matched subrule or subpattern to
: > return an array of C<Match> objects, instead of just a single object.
: What is the effect of the quantifiers C<**{0,1}> and C<**{0,1}?> ?

That would be **{0..1} and **{0..1}? actually, since we're treating ..
as a real range and {} as a real closure.  (Though they're presumably
optimized away for constant ranges.)

: Will they 
: behave like ? and ?? and return a single object - or will they cause the 
: quantified subrule or subpattern to return as an array of C<Match> objects?

The latter.  In the abstract it would be nice to define ? in terms of
**{0..1}, but the simple fact is that we can't afford to let **{$n..$m}
change the form of its return value merely because $n just happens
to be 0 and $m just happens to be 1.  And that actually makes the
distinction between ? and **{0..1} more useful, insofar as it lets you
specify which form of return you want.


Reply via email to