in reply to Perl cgi question
Hi,
in general it is better to specifically indicate what you want to accept, then to deny only specific characters and accept everything else.
Silly example: Suppose tomorrow somebody discovers a security hole in the webserver that you are using, that allows him/her to do all sort of evil things if a page that is displayed contains the BELL character (ascii char 007).
Normally nobody would need to fill in webforms with this character, but your webserver will be vunerable and people will try to exploit this vulnerability (since you are only denying characters in the list you gave us and didn't thing of the BELL character).
In case you'd only allowed [\w-\s] for instance, your webserver would not be vulnerable.