* Cambia 'package' por 'use'
* Falta un 'use CGI;' delante de CGI::Carp
* CGI::Carp no importa nada
* Quita la línea del DBD::mysql
* La línea del prepare no está entrecomillada
* No hay salida de los datos hacia el exterior, por lo que no sabemos si funciona
* Yo lo probaría antes directamente, sin ser CGI.
Una forma fácil de ver los errores del programa sin ejecutarlo, es haciendo la fase de compilación:
Using bash Syntax Highlighting