We're sure you already do this, but it's absolutely essential to start all your scripts and modules with:
use strict;
It's especially important to have the strict pragma enabled under mod_perl. While it's not required by the language, its use cannot be too strongly recommended. It will save you a great deal of time. And, of course, clean scripts will still run under mod_cgi!
In the rare cases where it is necessary, you can turn off the strict pragma, or a part of it, inside a block. For example, if you want to use symbolic references (see the perlref manpage) inside a particular block, you can use no strict 'refs';, as follows:
use strict; { no strict 'refs'; my $var_ref = 'foo'; $$var_ref = 1; }
Starting the block with no strict 'refs'; allows you to use symbolic references in the rest of the block. Outside this block, the use of symbolic references will trigger a runtime error.
 
Continue to: