#!/usr/bin/perl use strict; use warnings; my $badwords = join("|", @badwords); while (<$book>) { s/[\"'.,!?:;()[\]{}|\\\/-]/ /g; #replace all punctuation with a space s/\b($badwords)\b/replaceword($1)/eig; #replace all bad words, ignore case }