0,0
рейтинг
16 мая 2011 в 01:39

Разработка → Выпущен Perl 5.14

Perl*
Новая версия Perl — 5.14 — была официально выпущена 14 мая после успешного периода тестирования. Это первый релиз Perl 5, выпущенный по новому графику — выпуск стабильных версий теперь будет происходить раз в год.

В этой версии присутствует целый ряд улучшений и изменений, полный список которых можно найти по адресу http://perl5.git.perl.org/perl.git/blob/HEAD:/pod/perldelta.pod. Среди основных изменений:
  • поддержка Юникода 6.0, наряду со многими усовершенствованиями функций, связанных с Юникодом;
  • улучшена поддержка IPv6;
  • значительно упрощена автоконфигурация CPAN-клиента;
  • новый флаг /r, который делает замены s///, не изменяя содержимое рабочей переменной;
  • новые флаги регулярных выражений, позволяющие указать, что выражение нужно компилировать как ASCII или Юникод;
  • новый синтаксис «package Foo { }»;
  • по сравнению с предыдущими релизами меньше используется память и процессор;
  • множество исправлений ошибок, большое число которых связано с работой Дэйва Митчелла, который исправил некоторые самые важные ошибки на грант The Perl Foundation.
Выпуск этой версии знаменует официальное прекращение поддержки Perl 5.10.

Разработка версии заняла один год с момента выхода Perl 5.12.0. 150 авторов добавили и изменили около 550 тысяч строк в почти 3 тысячах файлах. Эта версия обязана своим выпуском сообществу CPAN, а также всему сообществу Perl. Отдельная заслуга принадлежит Джессу Винсенту — релиз-менеджеру Perl 5.14.
Александр Андрейко @aleksandrit
карма
57,1
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (23)

  • +4
    Флаг /r действительно порадовал, давно пора уже было.
  • 0
    В убунте по прежнему 5.10! %(
    • +2
      App::perlbrew тебя спасет. Можно поставить в систему разные версии perl и радоваться 8-)
      • +1
        Ого… похож на RVM. отличный шаг вперёд.
  • +1
    Основным тут кажется работа push/keys/values/each etc со ссылками, что убирает @{}, %{} мусор.
    • +2
      Неплохо, да. Но если раньше глядя на код было явно видно с какими структурами идет работа, то теперь все чуть сложнее стало. Перлоненавистники порадуются :)
      • +1
        в этом весь perl
        • +1
          Я вас уверяю, на перле тоже можно писать читаемый код.

          Другое дело что некоторые его последователи любят все пихать в одну строчку с тремя map'ами и парой grep'ов. Это апупеть как круто, но хвалиться этим можно только в среде таких же эээээ… гиков :)
          • 0
            и в этом весь perl.
            • 0
              Глупости… так было давно, сейчас так не пишут.
              А в одну строчку море кода на любом языке могут напихать.
              • 0
                пишут, пишут ) и не только на Perl :)

                хорошо хоть, не везде.
      • 0
        Это было включено в экспериментальном режиме, так что не факт, что останется навсегда.
      • 0
        А сейчас в чём неоднозначность?
        Если рядов с этими ключевыми словами скаляр — это указатель на массив или хэш, а если списочный тип то это непосредственно массив или хэш. Никакой неоднозначности нет.
  • +1
    ура =)
  • +1
    Надо протестировать потребление памяти, интересно.
    • 0
      По сравнению со стааааарой версией v5.8.9 (build 825) на задаче обработки многоуровневых хэшей с массивами (процесс занимал почти полгига в памяти) получен примерно такой результат:

      1. Потребление памяти меньше примерно на 10%.
      2. Скачков потребления не было замечено, т.е. можно предположить что лучше используется освобождаемая память внутри процесса (надеюсь, то что perl ничего не отдает системе назад все знают?)
      3. Быстрее почти на 20% (на 18,5 если быть точным)

      Вот как-то так.
  • 0
    sudo zypper up -r Tumbleweed perl
  • 0
    Не совсем понятно для чего был введен модификатор . Чем не устраивало то, как было раньше:

    По новому: $new = old =~ s/cat/dog/r;
    По старому: ($new = $old) =~ s/cat/dog/;
    • 0
      По-старому некрасиво (IMHO). Ну и без TIMTOWTDI никуда. :-)
    • +4
      Разница в том что по-новому не нужна переменная, можно, например, передать в функцию результат замены не модифицируя исходную строку и не используя дополнительных переменных, это удобно.
    • +5
      say s/.../.../r
      some_func( s/.../../r )
      • +1
        Да, спасибо. Уже понял. Действительно удобно.
    • –1
      два симвова вместо одного

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.