das haengt immer davon ab, welche techniken benuetzt werden:
Perl/CGI:
recht langsam, da bei jedem seitenaufruf perl+module geladen werden muessen, das programm compiliert und dann ausgefuehrt.
php/CGI: dasselbe Problem
mod_php: hier laeuf php als Apache-Servermodul, wodurch es i.d.R. um einiges schneller als die CGI-Loesungen ist
mod_perl: genauso wie mod_php, nur hat man auch (bei Apache::Request) noch sehr guten Zugriff auf die Apache-APIS. Allerdings muss man ein paar Sachen beachten, um vernuenftige mod_perl-Scripte schreiben zu koennen und sich keine Memoryleaks einhandelt oder anderen mod_perl-scripten variablenwerte wegschiesst. (Bei mod_perl soll das letzte Problem kein Problem mehr sein)
Ich habe zwar wenig Ahnung von PHP, schreibe aber mal ins Blaue hinein:
Fehlende Namensraeume in PHP: hier muss man sich muehseelig ueber Namenskonventionen behelfen, so beginnen z.B. die DB-Funktionen alle mit mysql, die anderer Datenbanken mit einem anderen vorsatz (z.B. mysql_connect); wenn man da mal eine andere Datenbank verwenden will, kann man an zig stellen im Code aenderungen vornehmen.
PHP wird - gerade bei groesseren Projekten - in meinen Augen viel zu schnell unuebersichtlich, weil code oft nicht dort liegt, wo man ihn erwartet. In Perl kann man durch Namensraeume/Module recht klar trennen.
x) Ich mag es nicht, zu viele verschiedenen sprache in einer datei zu halten; bei PHP hat man in html programmcode (obwohl: mittlerweile gibt es auch schon Templating systeme fuer php), bei Perl gibt man in der Regel HTML aus (haeufig ueber ein Templating System).
x) Fuer Perl spricht auch, dass es eine Menge an Modulen gibt, die einem oft viel Arbeit ersparen.
x) PHP ist, wenn man HTML kann, wahrscheinlich einfacher zu lernen.
so, mehr faellt mir nicht ein