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. Larry