mod_perl lets you to embed Perl interpretator in Apache. FastCGI allows to run any application as a daemon which communicates with web server.
Main differences (beware that I don't use FastCGI myself and run my web programms under mod_perl so I can be wrong in some details):
- mod_perl is highly coupled with Apache and gives your Perl applications access to its internals what impossible with FastCGI
- mod_perl is for Apache only. FastCGI supports other web servers as well
- mod_perl is for Perl only. FastCGI is not limited to Perl
- Since FastCGI runs your program as a separate daemon it can run under different UID/GID than web server. FastCGI may be more flexiable when it comes to dealing with security polices.
- Probably other things I forgot to mention or I don't know.
Personally I prefer mod_perl (mostly because of #1).
--
Ilya Martynov, ilya@iponweb.net
CTO IPonWEB (UK) Ltd
Quality Perl Programming and Unix Support
UK managed @ offshore prices - http://www.iponweb.net
Personal website - http://martynov.org