for (grep defined($_), (keys %chat){ my ( $name, $message, $ip) = split /~~/, $chat{$_}; $message =~ s/$_/****/g for @words; # swear words are evil!