Hallo Micha
Ich habe jetzt auch eine Funktion geschrieben, um alle regexp-Metazeichen zu ersetzen. Ist meine Funktion vollständig
Ja!
und auch "sinnvoll" programmiert?
Nein, es ist sinnvoller, die regexp-Metazeichen in einem Durchgang zu ersetzen:
$string =~ s/([\$*+.?^|()[]{}])/\$1/g;
Was mir nicht ganz klar ist: Warum muß ich in der Zeile "$Test2=~s/($RegExp)/\$1/g;" $1 schreiben und kann nicht statt dessen nochmal $RegExp schreiben?
Im Ersetzstring werden keine Metazeichen interpretiert, daher werden bei deinem Beispiel gleich zwei \ eingefügt. Du kannst natürlich "$Test2=~s/$RegExp/$RegExp/g;" schreiben, dann funktioniert's.
Gruss
Andreas