in reply to Re: Feature Idea: qr//e
in thread Feature Idea: qr//e (updated with solutions)
Hi vr,
my $regex = qr{(??{ join '|', map {quotemeta} qw/. | %/ })};
Another excellent idea, thank you! I've updated my root node.
it's eval'ed "before parsing a regex", while s///e is not about it at all
Yes, you're right, it was misleading of me to write that qr//e would be "analogous to s///e", since in s///e it's the replacement part that gets evaled, not the regex.
Update: Your solution has the interesting feature that the code gets reevaluated every time:
use Test::More; my @values = qw/abc def/; my $re = qr{^(??{ join '|', map {quotemeta} @values })$}i; like 'ABC', $re; like 'DEF', $re; unlike 'GHI', $re; push @values, 'ghi'; like 'ABC', $re; like 'DEF', $re; like 'GHI', $re; done_testing;
Thanks,
-- Hauke D
|
---|
In Section
Seekers of Perl Wisdom