Відповісти на це питання однозначно не можна. Справа в тому, що Perl істотно відрізняється від PHP. Перший - досить просунутий і потужний інтерпретована мова, а другий створювався виключно для роботи в інтернеті. Тому, коли хтось Вам скаже, що PHP крутіше Перла, пошліть його на три літери. Ці мови порівнюють в нерівних умовах.
PHP легше - це факт. При запуску демона httpd (веб-сервер Апачі) він відразу ж завантажує інтерпретатор. Тому при запитах до скриптів немає безглуздих і ресурсоємних завантажень процесора. Скрипт відразу ж йде на виконання, тому і говорять, що PHP дуже спритний. І хоча при використанні PHP витрачається додаткова пам'ять (кожен нащадок вистачає модуль php), при великій кількості звернень ми отримуємо виграш в продуктивності.
Процес виконання Perl-скриптів в стандартному вигляді дещо іншою. При зверненні до такого скрипту, Апачі завантажує інтерпретатор, а той виконує код. При цьому витрачається досить багато пам'яті. Не менш 2 мегабайт на кожен процес. Зазвичай від 4 до 6 мегабайт. Виходить, що кожен раз при зверненні до скрипту сервер робить завантаження важкої програми - інтерпретатора. Але це не означає, що Перл-скрипти виконуються повільніше. Це означає, що при роботі з Perl сервер відчуває велике навантаження.
При великих навантаженнях отримуємо наступне: сервер, який використовує PHP легше справляється із запитами і може обробити більше клієнтів. У той час сервер з сайтами на Perl буде пригальмовувати.
Прості CGI-скрипти відрізняються від FastCGI-скриптів всього кількома рядками та й структурою. Наприклад, скрипт може при першому запуску з'єднатися з MySQL і постійно тримати це з'єднання. Для того, щоб скрипт працював саме під управлінням FastCGI викликається бібліотека FCGI. Вона легко ставиться під Linux або Unix.
#! / Usr / bin / perl
use FCGI;
my $ request = FCGI :: Request ();
...
Дії, що виконуються при ініціалізації
скрипта (наприклад, коннект до БД)
...
while ($ request-> Accept ()> = 0)
...
Основні дії, які повинен виконувати скрипт
...
>
...
Дії при завершенні (рідко потрібно)
...
При виконанні запитів скрипт як би ганяється по циклу: очікування - обробка - очікування - обробка. В реалі (під Linux або Unix) це сплячий процес, який знаходиться в режимі Accept.
Якщо запитів дуже багато, то сервер може запустити ще копію процесу. Це жере деяку кількість пам'яті, але в цілому збільшує продуктивність сервера і веде до економії ресурсів.
Висновок напрошується сам собою. Кому подобається Php, нехай використовує його і не звинувачують Perl. Зв'язка Perl і FastCGI - краща відповідь на такі звинувачення. При складних завданнях PHP поступається Perl на стадії виконання коду, він виграє лише в стадії завантаження. Але використання FastCGI зводить нанівець цю перевагу. Так що вибір між мовами залежить від специфіки завдання і рівня розробника. Perl складний для новачків, але дозволяє вирішувати величезний пласт завдань крім веб-спрямованих (наприклад, робота в фоновому режимі і забезпечення роботи сайту). PHP легкий в освоєнні і зручний при створенні різного роду веб-додатків.