in reply to Re: qr// and user provided regex patterns...
in thread qr// and user provided regex patterns...

Using the eval works great for matches : $pattern = eval "qr$pattern" or die $@; But of course, when I do a 'substitution pattern' s///, it fails because it looks like eval "qrs/stuff/morestuff/. So I tried adding a bang, to wrap around the interpolated variable in the original : $pattern = eval "qr!$pattern!" or die $@; But now my patterns fail to match anything. Example:
s/Bill Clinton/The ex-President/gi on Bill Clinton is the ex-President +. bill clinton. results in Failure.

Replies are listed 'Best First'.
Re^3: qr// and user provided regex patterns...
by ikegami (Patriarch) on Aug 04, 2009 at 23:53 UTC

    Using the eval works great for matches : $pattern = eval "qr$pattern" or die $@;

    No, it doesn't.

    First of all, it doesn't work at all if $pattern actually contains a pattern.

    And then there are issues with improper escaping. If you pass /a\+/, it won't match "a" followed by "+" as desired.