s/// und sonderzeichen
Phw1
- cgi
ich habe ein perl-cgi-programm geschrieben in dem
aus einer datei strings eingelesen werden,
die sonderzeichen enthalten können:
$x =~ s,|,\|,g;
$x =~ s,(,\(,g;
...
$string =~ s/$x/$y/g;
da die anweisung in der dritten zeile zu einer fehlermeldung
führt, wenn in $x sonderzeichen enthalten sind, habe ich
alle sonderzeichen durch eine reihe von ersetzungen maskiert.
das finde ich nicht besonders elegant, zumal
auch im errorlog gemahnt wird: use of uninitialized value in line ...
danke für die antworten, gruss, phw
Hoi,
- gibt es eine methode diese reihe durch eine einzelne anweisung zu
ersetzen und die warnung auszuschließen?
$x = quotemeta $x;
$y = quotemeta $y;
- kann man die letzte ersetzung so umschreiben, dass man die sonderzeichen
gar nicht mehr maskieren muss?
$y = quotemeta $y;
$var =~ s/\Q$x\E/$y/g;
Gruesse,
CK