I suppose you might want to use CGI.pm for some low level stuff but I find I can still get most of what I need by copy and pasting stuff from Matt's CGI scripts (http://www.scriptarchive.com/).
Consider using the "Not Matt's Script" versions (http://nms-cgi.sourceforge.net/news.html), but even that was last updated 2004. MSA was notorious for very bad examples of old-style perl, and there are much better ways of doing perl nowadays.
For a much more modern approach, use Plack/PSGI, and one of the many frameworks built using it.
The really galling thing is that Matt's scripts will continue to work find in this post-CGI world. The nms versions were written to the best practices of 2000 and therefore need CGI.pm.
Actually Matt's stuff DOESN'T use CGI.pm (at least what I'm familiar with). That was the thing - even when CGI.pm was the Better Practice, Matt didn't use it.
No one should use Matt's stuff, unless you want huge security exploits.
I thought this was well known enough everyone would get the joke. In fact, I was surprised to see Matt's scripts were still kicking around on a website other than the wayback archive.
For a much more modern approach, use Plack/PSGI, and one of the many frameworks built using it.