Use Q
to autoescape any potentially problematic characters in your variable.
if($text_to_search =~ m/Q$search_string/) print "wee";
Update: To clarify how this works...
The Q
will turn on "autoescaping" of special characters in the regex. That means that any characters which would otherwise have a special meaning inside the match operator (for example, *
, ^
or [
and ]
) will have a
inserted before them so their special meaning is switched off.
The autoescaping is in effect until one of two situations occurs. Either a E
is found in the string or the end of the string is reached.
In my example above, there was no need to turn off the autoescaping, so I omitted the E
. If you need to use regex metacharacters later in the regex, then you'll need to use E
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…