in reply to
cgi or mod_perl
A good approach would be to write your code so that it can run under both plain CGI and mod_perl (or FastCGI or SpeedyCGI or PPerl for that matter).
Basically, this only means that you show some extra discipline concerning global variables, proper namespacing and such. Using a framework like CGI::Application takes you a long way here.
This way, you can have the extreme availability and ease-of-installation of pure CGI and if your site gets popular enough for performance issues to come into play, you can switch over to mod_perl. The code will continue to work (and be much faster, mainly due to eliminated startup time)
Making extensive use of mod_perl specific features (that would tie you into this architecture) is probably a lot of fun, but I do not think it is really worth the loss of flexibility.