You might say CGI.pm is the emacs of web programming.
As far as I care, CGI.pm can pile whatever
it wants in there. The overhead of CGI programming is
absurd anyway. What would your mom say, you forking
perls like that? Shame! :)
For getting params, it's identical to use Apache::Request
as to use CGI.pm. The advantage of CGI.pm is its generation
of HTML elements, everyone realizes, but that itself is a no-no if you're
working with HTML designers, where you want to separate
the HTML from the Perl as much as possible.
About the LWP part, I'm kind of confused, but I guess I
never happened to use the LWP-ish parts of CGI.pm.
I think, if you only need to use the LWP-ish parts,
then definitely use LWP. Sometimes I just 'use CGI::Util'
say, if I want to URL-encode something, or CGI::Cookie.pm
for cookies (actually I would use Apache::Cookie, but anyway... :)