Вы, бесспорно, уже наслышаны о 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 .