Это довольно распространенная проблема по мере роста сайтов.И это не ограничивается Perl.Есть решения.Как упомянул один человек, есть mod_perl, который по сути устанавливается как модуль Apache.Его можно использовать в простой версии через Apache :: Registry, или вы можете пройти весь путь, написав компоненты, которые взаимодействуют с API Apache на каждом этапе запроса.Какой бы подход вы ни использовали для mod_perl, есть несколько общих замечаний: это постоянный процесс, означающий (в простых терминах), что Perl остается резидентным от одного запроса к следующему, чтобы исключить затраты на запуск.Сценарии CGI часто не могут быть перенесены непосредственно в mod_perl без некоторой очистки и рефакторинга.Так как скрипт выполняется в постоянной среде, глобальные переменные не сбрасываются между запросами, например.Есть целый список «ошибок», которые нужно преодолеть.С этой целью Apache :: Registry несколько проще в среде mod_perl за счет отсутствия 100% мощности, которую может обеспечить программирование для API напрямую.Тем не менее, это довольно хороший компромисс.
Другим вариантом будет FastCGI, о котором вы можете прочитать на сайте FastCGI.
Хорошо написанные CGI-скрипты могут быть портированным на mod_perl или FastCGI с некоторыми усилиями.По этой причине это, вероятно, наименее болезненные подходы.Некоторые сценарии могут быть преобразованы с очень маленькой очисткой.Другим может потребоваться много работы, но это все еще возможно.
К счастью, в CPAN есть множество полезных модулей, которые помогут вам использовать mod_perl или FastCGI.Например, в иерархии Apache :: * на CPAN вы найдете множество инструментов, предназначенных для работы с mod_perl.Что касается FastCGI, вы даже найдете модули, связанные с Catalyst и Mojolicious, которые помогут объединить два, хотя последние два предложения, вероятно, потребуют некоторого реального рефакторинга.
Я обнаружил, что Practical mod_perl будет полезен в качестве начальноготочка (книга О'Рейли).