Всем снова привет.
Вот и пятница, по традиции — перл-пост. И, раз уж я тронул традиции, скажу, что это последний пост про шестой перл. Можно сказать, что месячник 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>. Но это и не страшно. Главное — попробовать самому написать хоть что-то на шестом перле. Ведь это интересно, не так ли? ;-)






































28 августа 2009, 18:51
28 августа 2009, 18:54
28 августа 2009, 19:05
P.S.
Из-за низкой кармы я комментирую редко.
28 августа 2009, 19:13