Thread Regex für Spamfilter bei Nicht-Ascii
(33 answers)
Opened by GwenDragon at 2012-06-17 18:27
Du dekodierst des selben String mehrfach. Kein Wunder das zu einer Meldung führt.
Einmal würde ich open( my $fh, '<:utf8', $blacklist_file ) schreiben. Oder an der Stelle: push @blacklist_entries, Encode::decode( 'utf-8', $line ); Damit ist die Daten schon gewandelt, und bedürfen keiner weiteren Aufmerksamkeit. Dann noch "testspam": Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sub testspam { my $comment = shift; chomp $comment; use Encode; $comment=Encode::decode( 'utf-8', $comment ); read_blacklist(); for my $black (@blacklist_entries) { if ( $comment =~ /\b\Q$black\E\b/i ) { return "badword_comment $black"; } } } |