Hallo,
ich habe ein ziemlich böses Problem mit Perl - böse deshalb, weil bestimmt in einer der oo Manpages dazu was steht und ich es nicht finde:
$foo = "bar (x) foo"; $x = "(x) f"; $y = "(y) f"; $foo =~ s/$x/$y/g;
Sollte für $foo eigentlich ergeben: bar (y) foo Tut es aber nicht, weil die Klammern stören. Bei nur einer Klammer gibt es ein: Unmatched ( before HERE mark in regex m/( << HERE x) f/ at ./test.pl line 12
Also quote ich den String vorher: $x =~ s/)/\)/g; $x =~ s/(/\(/g; Denn mit "quotemeta" werden auch alle Leerzeichen gequotet, und die sollen so bleiben wie sie sind. Gibt es also eine Quote-Funktion, die nur die Zeichen quotet, die bei einer s/// Operation hinderlich sind? Oder muß man das von Hand machen? Das Ziel soll sein, ähnlich wie bei Gettext komplette Textpassagen auszuwechseln.
Josef Spillner