Martin: zeichen ersetzen mit nichts

Beitrag lesen

Hallo,

möchte in einem String alle Zeichen löschen ausser Buchstaben. Warum funktioniert das hier nicht:

$test =~ tr/a-z|A-Z//c;

$test =~ tr/[^a-zA-Z]//c;
oder mit
$test =~ tr/\W//c;

hoffe das war richtig...

gruss
horst

Habe gerade herausgefunden, das das hier auch geht:

$test =~ tr/a-z|A-Z/-/c;

...logisch, das wäre dann auch richtig:

$test =~ tr/a-zA-Z/-/c;

Habe gerade irgendwo gelesen, dass dem Zeichen"-" eine besondere Rolle zusteht und wenn man das im Ersetzungsoperator einsetzt wird das Zeichen davor benutzt. Und wenn da keins ist wird es auch mit nichts ersetzt. Das ist mal wieder Typisch Perl :-)

Gruß
Dirk