$string =~ s/([.^$()[/]{}*+?])/\$1/g; # "^" -> "^"
Warum einfach, wenns auch kompliziert geht ;-)
$replacenew = quotemeta( $replace );
Aus welchem Modul ist "quotemeta"?
Ich weiß nicht, was auf dem TeamOne-Server alles installiert ist, da habe ich mich lieber zurückgehalten ...
(Außerdem sah *meine* "Lösung" viiiiel schrecklicher aus, das hier ist schon die Kurzform von Frank Schönmann ...)
alternative kann man auch in der RegExp angeben, das der folgende Stringteil gequotet werden soll:
$string =~ s/\Q$replace\E/ /g;
Tja, das darf ich leider nicht verwenden, weil ich an der Stelle, an er ich die Suche durchführe, die Abfrage, ob ich Metazeichen entwerten will oder nicht, nicht mehr durchführen kann.
(Ansonsten muß ich an dieser Stelle ein kaskadiertes if-then-else über mehrere Stufen mit 2 hoch n Zweigen machen, weil $replace bei mir noch von einer Handvoll anderer Schalter abhängen kann, beispielsweise von der Suche an Wortgrenzen und Case-Sensitivität und ...)