Cheatah: \x$_

Beitrag lesen

Hi,

$Input =~ s+%$_+\x$_+g;

Ich kan für das \x$_ irgendein Zeichen zum Beispiel ? einsetzten und es funktioniert tadellos.

\x ist leider nicht so dynamisch, wie Du es gerne hättest: Die _Zeichenfolge_ "$_" wird hier versucht, als Hexwert zu interpretieren, nicht der Inhalt der Variablen.

Wenn ich Dein Anliegen aber richtig interpretiere, willst Du eigentlich das CGI-Modul und CGI::unescape verwenden:

use CGI;
my $input = '%FE%09'; # Es ist übrigens _sehr_ unüblich, Variablennamen mit Großbuchstaben beginnen zu lassen. Macht Quelltexte schwer lesbar, sowas.
$input = CGI::unescape($input);

Das hat zudem den Vorteil, daß _alle_ kodierten Sonderzeichen umgewandelt werden, und nebenbei kannst Du die Fähigkeiten des CGI-Moduls auch anderweitig in Deinem Script verwenden. Selbst in nicht-CGI-Scripts ist das zuweilen sehr nützlich.

Cheatah