David,

<WARNING: This may be wrong for any number of reasons ;-)>

Regular Perl CGI programs are spawned by a web server for every request made of them, and so have a Perl interpreter startup cost and memory usage in addition to that of the web server (httpd). Mod_perl makes the Perl interpreter part of the httpd itself, so that startup costs are negated and memory usage is less (compared to the full blown interpreter), but it also beefs up _every_ httpd (could be compiled in or dynamically loaded, but the effect is the same). Not a huge deal if you only server dynamic content, but a waste if you serve up lots of images or static pages and only a few dynamic pages.

It is probably because you _can_ be ignorant of mod_perl vs. Perl CGI execution (mostly) that the diffence isn't obvious. The mod_perl folks have taken pains to make sure that Perl CGIs will run under mod_perl with little or no modification.

PHP can be run as a pure CGI program, but at a significant penalty in performance and capability. The same goes for Perl.

</WARNING - feel free to correct the above if mistaken>

I like PHP, but I would prefer to have more perl-like variable punctuation and DBI. I like the idea of HTML::Mason, but I would prefer to have a more flexible way of placing code (more like PHP). Now I am just waiting for someone to get peanutbutter in someone elses chocolate, and I am betting on the HTML::Mason guys. ;-)

Troy

>>> dd-b at dd-b.net 05/29/01 04:58PM >>>
I've never understood what mod_perl itself is really good for; the
documentation didn't communicate anything to me.  (I had at the time
been writing Perl CGI scripts for years, making use of Perl 5 and
objects.  I had also run various web servers for several years.  I.e.,
perhaps I was ignorant in the area, but I thought I had reason to
believe otherwise.)  I installed it because it was a prereq for
embperl, if I remember correctly (I had originally hoped that it would
*be* embperl).

I've never written an Apache module; maybe the problem is I don't
know I should be writing Apache modules for functions specific to
particular web sites I'm developing? 

(Um, reading this I guess it could be interpreted as a slam at
mod_perl and stuff.  My actual intent is to try to get some pointers
to understand the stuff here I don't currently understand.)