Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

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

by DamianConway (Beadle)
on Aug 16, 2012 at 04:12 UTC ( [id://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.

Damian

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2024-04-19 19:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found