in reply to The -w switch on a web application

In my opionion, it would be wise to find out why these variables aren't initialized. Altough I like the "fail-soft" characteristics of Perl when I write a one-liner or one-off script, things that talk to the big bad outside world should be robust.

Using if (defined($something)) statements is trying to get rid of the symptoms. Instead, make sure that each variable you use is properly initialized. This will make your code much more robust and resilient against probable attacks. For Web-stuff, I think it's wise to not only use strict and warnings, but also the -T (taint checking) command-line option.