Изучаем Perl 6: установка Rakudo Star и первый скрипт
4 сентября 2012
Вы, бесспорно, уже наслышаны о Perl 6. Многие ошибочно полагают, что этот язык находится в ранней стадии разработки и появится только лет через пять. Но в действительности попробовать Perl 6 можно уже сегодня и, более того, он уже вполне пригоден для написания реальных программ.
Дополнение: В октябре 2019 язык Perl 6 был переименован в Raku.
Глоссарий
Для начала разберемся с терминологией:
- Perl 6 — язык программирования, дальнейшее развитие Perl 5.
- Rakudo — компилятор Perl 6. Поскольку язык Perl 6, в отличие от Perl 5, имеет спецификацию, компиляторов и интерпретаторов у него много. На сегодняшний день Rakudo является среди них наиболее актуальным.
- Parrot — виртуальная машина, выполняющая скрипты, скомпилированные Rakudo. В отличие, например, от JVM, Parrot заточен под интерпретируемые языки программирования. Помимо Perl 6, на Parrot могут выполняться программы на Python, Ruby, Perl 5 и других языках.
- PBC — parrot bytecode, байткод виртуальной машины Parrot.
- PASM — ассемблер для Parrot, низкоуровневый язык, который при компиляции превращается в PBC.
- PIR — parrot intermediate representation, расширенный PASM.
- Panda — программа для установки модулей Perl 6, аналог утилит cpan, pip и cabal.
- Rakudo Star (или Rakudo*) — дистрибутив Perl 6, включающий в себя Parrot, Rakudo, Panda и некоторые библиотеки Perl 6. Если провести аналогию с миром Haskell, то Rakudo Star — это то же самое, что Haskell Platform.
Следует также отметить активно развивающийся компилятор Perl 6 под названием Niecza. Он позволяющий запускать программы на Perl 6 под CLR. Однако по моим ощущениям, в настоящее время пользоваться Niecza еще рановато.
Установка Rakudo Star
Рекомендуется собирать Rakudo Star из исходников, поскольку бинарные пакеты для Linux и других ОС имеют свойство редко обновляться. На момент написания этих строк последняя версия Rakudo Star имела номер 2012.08. Но вам лучше ознакомиться со списком доступных пакетов на GitHub и взять оттуда самый свежий релиз. Там же вы найдете MSI-пакет для Windows.
Установка под *nix происходит следующим образом:
tar -xvzf rakudo-star-2012.08.tar.gz
cd rakudo-star-2012.08
perl Configure.pl --gen-parrot --prefix=$HOME/perl6
make
make install
Затем прописываем $HOME/perl6/bin и $HOME/.perl6/bin в переменную окружения $PATH. Проверяем:
panda update
panda list
panda install p6doc
panda install XML::Parser::Tiny
p6doc XML::Parser::Tiny
Поздравляю, Rakudo Star установлен!
Настраиваем подсветку синтаксиса в VIM
Я все еще не признаю никаких IDE и весь код пишу в VIM. Добавить в него подсветку синтаксиса Perl 6 можно следующим образом:
cd ~/.vim/syntax/
wget http://raw.github.com/petdance/vim-perl/master/syntax/perl6.vim
mkdir -p ../ftdetect/
cd ../ftdetect/
echo 'au BufRead,BufNewFile *.p6 set filetype=perl6' > p6.vim
Если вы не разделяете моей любви к VIM, возможно, вам придется по душе интерактивная среда разработки Padre с плагином Padre::Plugin::Perl6.
Пишем простенький скрипт
Напишем скрипт, скачивающий веб-страничку и выводящий ее код в stdout:
use v6;
use LWP::Simple;
my $html = LWP::Simple.get('http://perl6.org');
say $html;
Говорим:
./get.p6
… и вуаля — перед нами HTML-код главной страницы perl6.org.
Теперь попробуйте написать что-нибудь самостоятельно. Например, сохраните главную страницу perl6.org в файл или получите ее заголовок с помощью регулярных выражений. Найдите сайт, отдающий данные в формате JSON или XML и пропарсите эти данные с помощью JSON::Tiny или XML::Parser::Tiny соответственно. Кстати, не могу не отметить, что последний модуль написан мной :)
Вообще, нет лучшего способа изучения Perl 6, чем взять какой-нибудь модуль на Perl 5 и переписать его на Perl 6. Только следует поторопиться, потому что число модулей для Perl 6 растет с неистовой скоростью. На момент написания этих строк их было уже больше сотни. Неплохо для языка, который, можно сказать, еще даже не появился на свет, не так ли?
Ссылки по теме
В качестве источников дополнительной информации я бы рекомендовал следующие:
- http://perl6.org/ — официальный сайт языка;
- http://perlcabal.org/syn/ — документация по Perl 6;
- Набор тестов, предназначенный в первую очередь для разработчиков компиляторов, но также пригодный и для обучения языку;
- http://doc.perl6.org/ — краткая справка по Perl 6;
- Бесплатная PDF-книга о Perl 6 и ее перевод на русский язык;
- http://planetsix.perl.org/ — что пишут о Perl 6 в блогах;
А вы уже сели за изучение Perl 6? Что в целом думаете об этом языке?
Дополнение: В продолжение темы — грамматики в Perl 6.
Метки: Perl, Языки программирования.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.