On Wed, 8 Dec 2004 16:07:43 -0700, Luke Palmer <[EMAIL PROTECTED]> wrote:
> Ashley Winters writes:
> > For a grammar, that works perfectly!
> 
> Yep.
> 
> > In a one-liner, I'd rather just use:
> >
> > $datetime ~~ /$year := (\d+) -? $month := (\d+) -? ...../
> 
> Then go ahead and use that.  If you're going to use subrules, you can
> either use the <?subrule> form or just the regular old <subrule> form
> and ignore the result.  There's nothing forcing you to pay attention to
> those.  The number variables only get incremented when you use
> parentheses.  I'd suspect that the return value of a rule only accounts
> for parenthecized captures as well.

I was working on the (possibly misguided) assumption that there's a
cost to capturing, and that perhaps agressive capturing isn't worth
having "on" in a one-liner. Some deep part of my mind remembers $`
being bad, I think. If there's no consequence to having capture being
on, then ignoring it is fine. I don't have a problem with that. As I
said before, <?foo> reads fine to me.

I'm still going to prefer using :=, simply as a good programming
practice. My mind sees a big difference between building a parse-tree
object and just grepping for some word I want in a string. Within a
rule{} block, there is no place except the rule object to keep your
data (hypothetically -- haha), so it makes sense to have everything
capture unless otherwise specified. There's no such limitation in a
regular code block, so I don't see the need.

I may change my mind after using $/<URI::URL><path_segment>[2]

Ashley Winters

Reply via email to