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.
Comment on Re: Configuration of Sambar server to use Perl
He imports the param fuction with the ':standard' argument.
I usually say use CGI ('param'); because I only care about that function. This allows me to say $x = param('x') without having to be bothered with objects.