Такие вещи, как Catalyst и CGI :: Application - больше эквиваленты Zend Framework, чем сам PHP. Чтобы воспроизвести основные функциональные возможности для создания веб-страниц, которые PHP предлагает «из коробки», вам нужны два модуля CPAN, которые должны быть доступны в каждой базовой установке Perl:
use CGI;
use DBI;
Это все, что вам действительно нужно. Теперь вместо:
$_POST['param']
$_GET['param']
у вас есть:
my $q = new CGI;
$q->param('param'); # same for post or get
И вместо:
$dbh = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$sth = mysql_query("SELECT 1 FROM table", $dbh);
while($row = mysql_fetch_assoc($sth))
{
// do something with $row
}
У вас есть:
my $dbh = DBI->connect('DBI:mysql:host=localhost;', 'mysql_user', 'mysql_password');
my $sth = $dbh->prepare("SELECT 1 FROM table");
$sth->execute();
while(my $row = $sth->fetchrow_hashref)
{
# do stuff with row
}
Код DBI немного сложнее, потому что он предлагает подготовленные оценки и связанные переменные, так что вам не нужно беспокоиться об SQL-инъекциях. PHP не предлагает этого, поэтому вам нужно использовать что-то вроде PDO или написать собственный класс базы данных.
Осталось только, если вы хотите вывод HTML в скрипте. Но ты не хочешь этого? Для этого вы используете HTML :: Template или Template :: Toolkit, так же, как вы должны использовать Smarty или нативные шаблоны в PHP.