Perl-Sensitive Sunglasses | |
PerlMonks |
Re: The usage of <ALIAS=\IDENT> of Regexp::Grammarsby DamianConway (Beadle) |
on Aug 16, 2012 at 04:12 UTC ( [id://987693]=note: print w/replies, xml ) | Need Help?? |
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
In Section
Seekers of Perl Wisdom
|
|