in reply to "use strict;" woes

Just a CGI/DBI thought - doing as you have here by hardcoding the database $serverName, $serverDB, $serverUser, and $serverPass right in your CGI script is dangerous. It's fine for testing or just getting your feet wet with a test CGI application that connects to a database, but one way to make it safer is to *NOT* hardcode the database server and user login info actually in the CGI script - instead, put those variables in their own module(Ex: MY_DB.pm) and put the module *outside* the webserver's document root. By doing that, you prevent someone getting access to that database info if they compromise your webserver.

In your CGI script, put a 'use lib' in there where the value is the directory where MY_DB.pm is located. For example, if you put MY_DB.pm in /path/to/safe_dir/MY_DB.pm, then do this in your CGI script:
use lib '/path/to/safe_dir'; use MY_DB; our $serverName = $MY_DB::serverName; our $serverDB = $MY_DB::serverDB; our $db = "DBI:mysql:$serverDB:$serverName";
Creating modules is pretty easy, and there's good documentation on how - just do
perldoc perl
and look for 'perlmod' - there are several perldoc's describing modules, but I think the one you are interested in is 'perlmodlib' since that one is for how to write and use modules. So, to read the perlmodlib perldoc, just do
perldoc perlmodlib
at a command prompt.

HTH.