Andreas Flückiger: Danke, das funktioniert! Ist meine Funktion perfekt?

Beitrag lesen

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