Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re: The usage of <ALIAS=\IDENT> of Regexp::Grammars

by DamianConway (Beadle)
on Aug 16, 2012 at 04:12 UTC ( #987693=note: print w/replies, xml ) Need Help??

in reply to The usage of <ALIAS=\IDENT> of Regexp::Grammars

The bug is that Perl does not always pass the complete raw regex into an overload 'qr', so the module cannot always convert it correctly. :-(

In this case, Perl intercepts the \l of the \ldelim and treats it as a "convert the following to lowercase" escape, before Regexp::Grammars ever gets to see the grammar.

The workaround for the current release is not to use rulenames that start with 'l', 'u', 'L', 'U', 'Q', or 'E' in a matchref. Which sucks, I know.

The long term solution (which was just uploaded to CPAN as Regexp::Grammars version 1.020) is to change the entire matchref syntax from <\IDENT> to <\_IDENT>. Yes, that's horribly backwards incompatible, but it's the only solution that doesn't involve some deep and scary hacking on the Perl core. I'm sorry.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://987693]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2019-12-08 02:45 GMT
Find Nodes?
    Voting Booth?
    Strict and warnings: which comes first?

    Results (162 votes). Check out past polls.