You need to POST your data rather than GET it as you are at the moment. Using GET during form development can be useful since you can see what is going on. You can then switch to POST once you are ready. The other major difference is that POSTed data can exceed the 2k maximum length of a URL.
The great thing about using CGI.pm and relatives is that when it comes to script processing, there is no difference between data submitted by either GET or POST.