Я исследовал в Интернете и нашел несколько интересных модулей / платформ Perl, таких как HTML: Mason, HTML :: Embperl или MVC Catalyst, и т. Д., Которые могут позволить мне встраивать Perl в html, подобно PHP-коду внутри HTML.
Однако мой проект Perl должен быть загружен на сервер uni, где предоставляются только ограниченные права и ресурсы.
Например, Apache версии 1.3.3 и Perl версии 5.8.0 (ниже требований Catalyst)
Я использовал скрипт для проверки всех установленных модулей Perl, только эти имена содержат слово "html":
HTML::HeadParser 2.17
HTML::Entities 1.23
HTML::Filter 2.09
HTML::LinkExtor 1.31
HTML::Parser 3.26
HTML::PullParser 2.06
HTML::TokeParser 2.24
HTML::Tagset 3.03
HTML::Form 0.03
Боюсь, что никто из них не позволит мне встроить Perl прямо в html.
Я знаю, что могу использовать простое выражение print вместе с "heredoc" для печати всего на html-странице внутри Perl / CGI, но я считаю, что это нарушает парадигму проектирования MVC и является менее гибким и более сложным для развиваться, главным образом потому, что теперь бизнес-логика перепутана с HTML-разметками.
Мое текущее решение заключается в использовании jQuery для запуска AJAX-запросов на загрузку html в определенные теги со стороны клиента. Таким образом, в этом случае Perl используется только для предоставления доступа к данным на стороне сервера, манипулирования соответствующими данными и предоставления ответов в формате JSON на запросы AJAX.
Интересно, есть ли лучший способ сделать это? Я с трудом могу изменить состояние сервера и не думаю, что системный администратор был бы настолько щедрым для установки любых других модулей Perl.
Обновленная информация:
Основная причина встраивания Perl в html заключается в том, что я очень плохо знаком с программированием на CGI, и, поскольку я более знаком с PHP и jQuery, я хотел бы знать, существует ли правильный способ встраивания Perl непосредственно в html поэтому я могу очень быстро завершить работу над клиентской частью и сосредоточиться на стороне сервера.
Скажи, что-то вроде этого:
<div id='user_status'>Your last visit was :[% getLastVisitDateTime($userId)%]</div>
Пожалуйста, примите мои небольшие знания Perl / CGI и большое спасибо за помощь заранее.
Обновлено 2:
Следуя инструкциям на сайте Template Toolkit, я установил этот модуль на свой MacBook Pro, но, к сожалению, не могу установить его на сервер uni по причине разрешения:
Warning: You do not have permissions to install into
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
at /usr/lib/perl5/5.8.0/ExtUtils/Install.pm line 84.
mkdir /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-
multi/auto/Template: Permission denied at /usr/lib/perl5/
5.8.0/ExtUtils/Install.pm line 137
make: *** [pure_site_install] Error 255
Так что, к сожалению, я сейчас ищу другие пути ...
Хорошо, похоже, HTML :: Mason не может быть установлен по той же причине. Поэтому я боюсь, что мне нужно найти решение только для .pm, чтобы мне не пришлось ничего устанавливать в среду perl универ-сервера ...