I agree that CGI.pm is great for getting away from hand-rolled solutions. It may not be perfect, but you could do far, far worse.
Handling cookies is nice, but there again, other modules exist that handle that specifically. Sticky fields and XHTML aren't a concern for me, because I use templates extensiviely for any non-trivial CGI.
That's interesting about the dynamic loading, I didn't know about that.
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
Note: All code is untested, unless otherwise stated