День 1: Получаем Rakudo
Как я и планировал, выкладываю перевод первой статьи цикла Perl 6 Advent Calendar. Напоминаю, что перевод вольный, по-этому сильно придираться не стоит.
Существует много разных частичных реализаций Perl 6. Наиболее полной на данный момент является Rakudo. Для получения Rakudo и дальнейшей работы с ним есть несколько путей, но если вас интересует помощь в разработке и отслеживание текущего статуса, то наилучшим вариантом будет получение и сборка Rakudo непосредственно из актуальных исходных кодов.
Для этого вам понадобятся Subversion (svn), git, Perl 5.8 или новее, компилятор языка C и утилита make. В Linux-подобных операционных системах (включая OS X) собрать Rakudo можно следующим образом:
$ git clone git://github.com/rakudo/rakudo.git $ cd rakudo $ perl Configure.pl --gen-parrot $ make $ make test $ make install
Здесь опция –gen-parrot указывает Subversion получить сответствующую версию виртуальной машины Parrot и затем компилирует её.
Для текущего Rakudo, make install не установит его в ваше окружение, это фактически подготовит систему так, что вы сможете запускать исполняемый файл perl6 (созданный в директории rakudo) из любой другой директории. После этого вы можете «поиграть» с Perl 6, запустив perl6 без аргументов, что позволит войти в среду REPL, где можно непосредственно вводить команды и видеть что они делают. Это может быть невероятно удобным для ознакомления с работой Perl 6.
Например:
$ ./perl6
> say "Hello world!";
Hello world!
> say (10/7).WHAT
Rat()
> say [+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } );
233168
Начинающиеся на $ и > строки – это то, что вы вводите; другие строки – это ответ Rakudo. Первый пример просто выводит текст с помощью say. Второй создаёт рациональное число и запрашивает его тип. Третий создаёт список чисел от 1 до 999, отфильтровывает те, которые не делятся на 3 или 5, суммирует их и выводит результат. (Это первая задача проекта Эйлера, спасибо draegtun за напоминание.) Мы постараемся объяснить как работают эти вещи в будущих постах.
И еще одно замечание. Если у вас возникли трудности в получении Rakudo, то канал #perl6 на irc.freenode.net может оказаться весьма полезным.