Perhaps I'm missing some new feature of the CGI module, but I don't see the creation of a CGI object from which to call the param method.
You should also check your server's error log for perl related errors such as those mentioned in above posts.
The line:
use CGI::Carp qw(fatalsToBrowser);
can make locating these errors easier while you are developing your program.