Perl 6. Пишем веб-скрипт своими руками

Всем снова привет.

Вот и пятница, по традиции — перл-пост. И, раз уж я тронул традиции, скажу, что это последний пост про шестой перл. Можно сказать, что месячник Perl 6 закончился, и этот пост — последний.

По этому поводу хочу сказать спасибо всем, кто принимал участие в беседах, комментировал или еще как-то давал о себе знать в связи с моими статьями, без вас бы этих статей не было.

Еще одна новость для тех, кто интересуется Perl 6: все посты я бережно сохранил в одном очень хорошем месте. Формат вики для этого подходит идеально, потому что на основе этих статей планируется небольшой учебник, т.е. статьи можно и нужно править, и это все приведет к скоплению знаний в одном месте, да еще и на русском языке.

Но, ближе к body. Сегодня я расскажу, как писать сайты на Perl 6. Кое-какие вещи можно делать уже сейчас.

Не смотря на то, что Perl 6 еще не вышел в официальное обращение и на продакшен-серверах появится не скоро, на нем уже сейчас можно написать небольшое веб-приложение. 

Конечно, главная «достопримечательность» в мире Perl 6 — это November-wiki, но и простой скрипт можно написать на Perl 6 довольно легко.

Поэтому, предлагаю простую игру «Угадай число», цель которой будет — продемострировать, как сегодня можно написать скрипт на шестом перле. Хочу обратить внимание на то, что это действительно демонстрационная программа, которую любой школьник может написать за пару часов. Цель ее — просто показать, что можно, а что нельзя.

В самом начале может быть задан вопрос: как настроить сервер, чтобы он запускал perl6-скрипты? Отвечу на него просто: никак. Единственное ваше участие в работе сервера будет заключаться в том, чтобы сделать скрипт исполнимым и в начале написать строчку:

#!/usb/bin/perl6

Как сделать так, чтобы по адресу /usr/bin/perl6 у вас находился Rakudo, читайте в моей самой первой статье про Perl 6.

Основным неудобством разработки на Perl 6 остается нехватка простых инструментов, к которым все мы уже давно привыкли. В частности, модуля CGI. Конечно, можно взять класс CGI, что является частью November-wiki, но он изначально заточен на то, чтобы быть превращенным в байт-код и исполняться на Parrot, поэтому быстродействие его меня сильно смущает.

Поэтому, пришлось написать небольшой класс CGI::Params самому. Не смотрите на то, что он, быть может, не решает какие-то задачи, ему нужно лишь получать данные, переданные методами GET и POST.

Код этого класса легко можно поместить внутрь кода основной программы, так, например, работает у меня. Или вынести в отдельный файл и зацеплять его потом строчкой:

use CGI::Params;

Дальше просто. Содать объект класса:

my $cgi = CGI::Params.new;

Получить число:

my $num = $cgi.param('num');

Загадать число, создать результат:

my $s_num = 23;
my $res;

Сравнить полученное число с тем, что загадали:

given $num {
when $num == $s_num { $res = "Угадал!"; }
when $num eq '' { $res = "" }
when $num < $s_num { $res = "Слишком мало"; }
when $num > $s_num { $res = "Слишком много"; }
default { $res = "" }
}

Выдать результат и форму:

$cgi.send_response;
say "<h1>Enter number:</h1>";
say "<h3>$res</h3>";
say "<form method=post><input name=num><input type=submit></form>";

Все.

Не думайте, что я рассматриваю этот скрипт как что-то, что может всерьез заменить мне youtube. И да, я знаю, что вывод пустого результата создаст такую штуку: <h1></h1>. Но это и не страшно. Главное — попробовать самому написать хоть что-то на шестом перле. Ведь это интересно, не так ли? ;-)

Perl 6, perl, CGI
28 августа, 2:39
1611

Комментарии

Я же говорил, плюсы ставят(мы типо чюжой труп уважаем), но всем похуй.
Не надо обобщать, не всем.
Хорошо, всем кроме тебя.
P.S.
Из-за низкой кармы я комментирую редко.
Ну да, да, кроме меня. Главное, дыши ровнее. Никто тебя не обидит.

Оставьте свой комментарий