my $q = CGI->new; instead of my $q = CGI->new( { } ); #### . . . reads all the POST data and makes it unavailable to your main program #### sub new { bless {}, shift }