The following is the code that I use for this task and null fields are certainly incorporated into the hash (as determined by parsing of parameter values by HTML::FormValidator):
my $cgi = CGI->new;
my %param = map { $_ => $cgi->param($_) } $cgi->param();