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}?> ?  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?

First, I much prefer an alternate wording to Damian's:

   The C<*>, C<+>, and C<**{...}> quantifiers all produce an array
   of C<Match> objects instead of just a single object.

To answer your question, C<**{0..1}> always produces an array of 
Match objects (think C<**{$m..$n}> where $m and $n may not be 
immediately known),  while C<?> always produces a single Match object.

Both C<**{0..1}> and C<?> will match "zero or one occurrence" of the
thing being quantified, but a non-matching C<**{0..1}> results in
a zero-length array, while a non-matching C<?> results in an 
"unsuccessful" Match object.

Pm

Reply via email to