For some reason, MySQL ignores your port specification unless you specify a hostname. It assumes without a hostname that you're wanting to connect to the localhost AND through the UNIX socket instead of TCP/IP. I'm no networking genius, so I don't know if that summed it up right, but to fix it, I just had to put in the DSN:
DBI:mysql:database=$db;hostname=www.myhost.com;port=3309
Then I had to grant privs to the username connecting from the host and voila! I had a script if placed on one place in the server connected to a development db server and if it were somewhere else, connected to the production db server.
happy happy joy joy!
As always, thanks go out to the fine chaps @ PerlMonks!