Thx for the tips. I'm not one to reinvent the wheel. I have spent the last 48 hours looking for an easy way to do sessions and mostly what I find are things like the documentation and tutorials for CGI::Session and Apache::Session, all of which seem to be very barebone.
I did find out about CGI::Application, but I'm reluctant to use it for two reasons:
a) CGI::Application assumes that the HTML for a transaction gets accumulated into a scalar string, and then printed all at once at the end. My application can't afford to do that, because it is a search engine that typically takes 2 minutes to complete the search. It can't afford to wait those two minutes before displaying some results. Instead, it needs to display each search result as soon as it finds it. Maybe I could inherit from CGI::Application and inject a hook into it for printing html as soon as it gets generated, but that sounds like it would be very involved.
b) I already have a large application to which I need to add session support. I would have to do a major rewrite to cast it into the CGI::Application framework.
I'll look at some of the other links you provided, and hopefully I'll find what I need there.