in reply to CGI.pm vs no CGI.pm

If you think you can write your own CGI handling routines, try, but to do this properly, it will take a lot of time and effort that would be better spent on things that are important. Like your application.

The long and the short of it is: Use CGI because it works and is practically a de-facto standard when writing Web-based applications in Perl.

Any arguments that say that "CGI.pm is too hard to learn!" are simply not true. Just because you don't understand it, or because it looks complicated, doesn't mean you can't learn it in small steps:
use CGI; my $q = CGI->new(); print $q->header(); print "<B>Hello there ", $q->param('name'), "!</B>";
This is typically what you do, though of course, with a lot more code. Achieving the same thing with your own "hand rolled" code is liable to be a huge chore.

Now, of course, you don't have to use CGI, but if you're asking for help with a problem and the first thing you say is "I have these hand-rolled CGI parsing routines, and..." you're not going to get much useful feedback.