It makes no sense to let the user specify /g for a match. You can't even use it on qr// because it makes no sense. ixsm are the four modifiers that apply to the pattern as opposed to the operator.
The followign doesn't make much sense:
my $compd_pattern = eval "qr($pattern)" or die $@;
It removes the ability of qr// to quote, which is what you want. The code should be
my $compd_pattern = qr($pattern);
You say you have problems doing substitutions, but you didn't show us your attempt (despite your claim). You should have no problems using a qr// pattern in a substitution.
my $pat = ...; my $repl = ...; my $mods = ''; $mods .= 'i' if ...; $mods .= 's' if ...; $mods .= 'm' if ...; $mods .= 'x' if ...; my $re = qr/(?$mods:$pat)/; if (...) { s/$re/$repl/g; } else { s/$re/$repl/; }
In reply to Re^3: qr// and user provided regex patterns...
by ikegami
in thread qr// and user provided regex patterns...
by misterMatt
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |