# create a closure for each word so that it matches stuff with spaces/punctuation
# and repeated characters in it
my $w = uc $_;
- my @l = map { $_ eq 'I' ? '[I1]' : ($_ eq 'O' ? '[O0]' : $_) }split //, $w;
+ my @l = split //, $w;
my $e = join '+[\s\W]+', @l;
my $s = eval qq{sub { return \$_[0] =~ /$e+/ ? '$w' : () } };
push @regex, $s unless $@;
return @out if @out;
for (split(/\s+/, $s)) {
- s/[^\w]//g;
- push @out, $_ if $badword->in($_);
s/\'?S$//;
push @out, $_ if $badword->in($_);
}