2012-01-08 2 views
0

Я хочу запустить скрипт Perl онлайн, но я не знаю, как это сделать.
В PHP вам нужно начать с <?php, так что вам нужно начинать с чего-то подобного в Perl?
И делает ли Apache автоматически распознавание Perl? Или мне нужно загрузить Perl и указать на него, используя #!/path/to/perl? Могу ли я использовать print() для отображения HTML?Запуск perl online

+0

Я нашел на tizag.com, что вам нужно использовать #! PathtoPERL. – 11684

+0

У вас нет * have * для использования shebang, это всего лишь один метод. – Quentin

+3

Tizag - вполне возможно худший учебник Perl в мире, см. [Обзор] (http://perl-tutorial.org/#index6h1). – daxim

ответ

3

В PHP вам нужно начать с <?php, так что вам нужно начинать с чего-то подобного в Perl?

Существуют такие рамки (такие как Mason), которые работают так, но более типично иметь стандартную программу Perl, которая выводит страницу.

И делает ли Apache автоматически распознавание Perl?

Apache автоматически не распознает любое программирование на стороне сервера.

Или мне нужно загрузить Perl и указать ему, используя #!/Path/to/perl?

Вам необходимо будет установить Perl на сервере. Обычно вы запускаете сценарий (но не обязательно, например, если вы используете mod_perl), но ему придется настроить сервер, чтобы распознать его как исполняемый файл и запустить его (так же, как вам нужно настроить сервер для распознавания файлов, заканчивающихся с .php как скрипты для работы с PHP).

Могу ли я использовать print() для отображения HTML?

Да.

Возможно, вам стоит начать, зайдя на вопрос Web Programming For The Non-Web Programmer (in Perl).

+0

Так что же мне делать? Загрузите PERL на мой сервер и дайте '#!' заявление указывает на это? – 11684

+1

Если на вашем сервере не установлен Perl (нет такой вещи, как PERL), вам необходимо его установить. Просто «загрузить его» - очень плохая идея, так как вы, вероятно, получите неработающие ссылки на разделяемые библиотеки. В разделе принятого ответа (для вопроса, на который я ссылался) отмечен «Как заставить веб-сервер разговаривать с вашим Perl», есть некоторые указания для начала работы. – Quentin

+0

Как я могу запустить команду cmd-line на моем сервере? У меня есть только каталог на сервере ... – 11684

0

Apache HTTP автоматически не понимает Perl или PHP. Для работы PHP вам нужно, чтобы модуль Apache httpd назывался как-то вроде mod_php.so или libphp5.so. Однако, поскольку многие веб-сайты используют PHP таким образом, этот модуль Apache httpd обычно устанавливается.

Так же, как вам нужно mod_php для того, чтобы использовать PHP в веб-сервере Apache HTTPD, вы должны сделать, это убедиться, что ваш веб-сервер с помощью mod_perl если вы хотите использовать Perl подобным образом.

Вам необходимо будет установить и установить mod_perl, что может быть сложно, особенно если вы не контролируете машину, на которой установлен сервер.

Другой способ использования Perl - использовать то, что известно как CGI-Perl. Это намного проще настроить, но это также намного больше опасно, так как это может привести к тому, что кто-то сможет запускать несанкционированные программы на вашем сервере Apache httpd.

В этом случае вам необходимо установить каталог CGI-BIN и настроить Apache httpd. Это довольно просто.После этого вы поместите все свои скрипты на Perl в каталог _CGI_BIN_. В этом случае ваши сценарии Perl должны будут обрабатывать всю связь между вашим веб-сервером и веб-клиентом и обрабатывать все дисплеи. К счастью, это не слишком сложно в perl, поскольку Perl предоставляет вам базовые модули для этого.

+0

* * другой способ? Есть много других способов, mod_psgi и FastCGI весной. – Quentin

+0

@Quentin - Вы правы, что есть много других способов. Тем не менее, плакат спросил о Perl, как поддержка PHP в Apache httpd, а mod_perl будет самым близким. Большая проблема заключается в том, что вы должны нормально перестраивать Apache, чтобы получить его. Это единственный способ заставить меня работать. _Другой путь_ в основном ссылался на способ получить Perl без перестройки httpd. CGI встроен и только должен быть настроен, что довольно просто. FastCGI и PSGI интересны, но, как и mod_perl, вам нужно перекомпилировать httpd. Не знаком с mod_psgi, но это звучит интересно. –

1

Вы должны использовать Apache? Если нет, то это альтернатива для рассмотрения.

Я обнаружил, что встроенные серверы и шаблоны для моделирования в работают очень естественно для встроенного Perl в HTML. Теги имеют форму <%==, но работают одинаково. Кроме того, у вас есть хорошая документация и примеры, которые помогут вам в этом.

Редактирование: Кажется, что есть способы использовать Apache с Mojolicious, см. http://search.cpan.org/perldoc?Mojolicious::Guides::Cookbook, хотя встроенные серверы хорошо работали для меня, с FAR less (т.е. no).

Смежные вопросы