in reply to Blacklisting with a Regular Expression

Maybe I'm misunderstanding the problem but does this do what you want?
use strict; use warnings; while(<DATA>) { print unless /(evil|bad|wrong)/i; } __DATA__ This string contains no blacklisted tokens. This string is evil and wrong.

Updated: added i switch.