Hallo,
folgende Anweisung bereinigt bei mir eine Zeichenkette von "Bad-Words":
foreach $item (@badwords)
{
$DATA{'msg'}=~s/$item//g
}
In @badwords stehen die Wörter, die aus $DATA{'msg'} gelöscht werden sollen. Leider ist diese Funktion Case-Sensitive, so dass zwar das Wort "sex" gelöscht wird, das Wort "Sex" aber nicht, zum Beispiel.
Wahrscheinlich ist es eine Kleinigkeit, diese Funktion so umzustricken, dass das trotzdem funktioniert, aber ich finde keine Info darüber.
Übrigens, in $DATA{'msg'} dürfen zum Schluss nicht nur kleine Buchstaben enthalten sein. Der Eintrag soll ja später wieder originalgetreu geschrieben werden. Es scheidet also aus, die Zeichenkette einfach in Kleinbuchstaben umzuwandeln. Das hätte ich nämlich hinbekommen. :-(
Vielen Dank für alle Hilfe.
Ciao
Sascha