LINUX.ORG.RU

Perl 5.18

 ,


0

4

Сегодня 05.18 состоялся релиз Perl 5.18. Разработка заняла год с момента выпуска предыдущей стабильной версии, при участии 113 авторов.
Из видимых изменений можно отметить следующие:

  • Новый механизм для экспериментальных возможностей (features)
    Начиная с этого выпуска при использовании какой-либо экспериментальной возможности будет выдаваться предупреждение, избавиться от которого можно с помощью стандартного механизма «no warnings» (для чего была добавлена категория experimental)
    no warnings "experimental::feature_name";
    Также стоит отметить, что некоторые из уже привычных возможностей были перенесены в категорию экспериментальных, например оператор smartmatch. Полный список экспериментальных возможностей можно посмотреть в perlexperiment
  • Более строгая рандомизация хешей
    Отдельное внимание было уделено проблеме. известной как Hash Collision Complexity Attack. Несмотря на то, что возможность данной атаки была сведена к нулю начиная с perl 5.8.1 (25-е сентября 2003-го), разработчики пошли дальше (возможно, в связи с недавними событиями вокруг некоторых известных языков, применяемых в веб-разработке) и усовершенствовали механизм рандомизации хешей. Теперь порядок вывода одного и того же хеша отличается от запуска к запуску. Помимо этого каждый хеш имеет свой собственный порядок итерирования, поэтому порядок вывода двух хешей с одинаковыми значениями может отличаться. Также был добавлен ряд новых хеширующих функций, а выбрать конкретную можно на этапе компиляции интерпретатора perl.
  • Бинарные операции над символьными классами в регулярных выражениях
    Это экспериментальная возможность, позволяющая применять к символьным классам бинарные операторы, такие как: & (пересечение), + или | (объединение), - (вычитание), ^ (симметрическая разность). Так, например, можно получить все цифры Тайского или Лаосского написания:
    /(?[ ( \p{Thai} + \p{Lao} ) & \p{Digit} ])/
    
  • Подпрограммы с лексической областью видимости
    Появилась экспериментальная возможность создавать подпрограммы с лексической областью видимости (my sub foo {} или state sub foo {}) и алиасы с лексической областью видимости на подпрограммы текущего пакета (our sub foo {}).

>>> Подробности

★★★

Проверено: anonymous_incognito ()
Последнее исправление: cetjs2 (всего исправлений: 1)

рандомизация

Какое слово не красивое, в столь лаконичной новости.
Может лучше просто «Переработан|улучшен механизм генерации хешей» ?

Spirit_of_Stallman ★★★
()

Определённо нужен! Один из классических скриптовых языков *nix.

anonymous
()

вот это серьёзная новость

das_tier ★★★★★
()
Ответ на: комментарий от deity

Используем. Но только древний 5.10. Язык пилят и появляются новые фичи - насколько они корректно сделаны судить трудно т.к. перловиков мало и еще меньшее количество пользуется самым свежим.

outtaspace ★★★
()
Ответ на: комментарий от Spirit_of_Stallman

Может лучше просто «Переработан|улучшен механизм генерации хешей» ?

Будет не то. Для тех, кто в теме, будет непонятно, а для тех, кто не в теме, и то, и другое — китайская грамота.

shimon ★★★★★
()
Ответ на: комментарий от outtaspace

Лорчую. О новых фичах часто больно слышать.

anonymous
()

Отлично.

Хочу чтобы на ЛОРе когда-нибудь появилась новость, что Perl отмечает своё 55-летие. ;)

necromant ★★
()

Он стал ещё менее читабельным, грац всех!

Sharezil
()
Ответ на: комментарий от actics

> когда его уже закопают.

когда копать научатся.

arsi ★★★★★
()

Бинарные операции над символьными классами

Очень круто, ради такого даже стоит обновиться.

kranky ★★★★★
()
Ответ на: комментарий от TheLibertyMan

> Пилили бы лучше 6-й вместе с Parrot-ом.

в выпиленном состоянии от них больше пользы, чем в запиленном.

arsi ★★★★★
()
Ответ на: комментарий от deity

попробуй удалить.

с удивлением обнаружишь кое-что. если не на венде, конечно.

anonymous
()
Ответ на: комментарий от TheLibertyMan

Да ну нафиг 6й. Лучше бы эволюционно и обратно-совместимо исправляли родовые проблемы 5-го. Хотя конечно всегда есть опасность, что правильный 5й перл - это будет просто PHP.

vitalif ★★★★★
()
Ответ на: комментарий от vitalif

Тянуть костыли обратной совместимости не есть хорошо. Да и из Parrot-а вышла бы хорошая VM, где имеется возможность библиотеки одного языка использовать в другом.

TheLibertyMan
()

чем серьезнее контора, тем консервативнее перловики. кое-где все еще сидят на 5.8 и за смартматчи больно бьют по рукам. как показывает новость, не зря.

chg ★★★★★
()

Также стоит отметить, что некоторые из уже привычных возможностей были перенесены в категорию экспериментальных, например оператор smartmatch.

Почему?

KennyMinigun ★★★★★
()

Без Perl никуда, лет 10 назад использовал его очень часто, но и сейчас бывают моменты когда только Perl решает.

Long Live Perl!

golodranez ★★★★
()
Ответ на: комментарий от actics

когда его уже закопают.

Когда замена будет, а её нет. Язык прекрасен.

golodranez ★★★★
()

Появилась экспериментальная возможность создавать подпрограммы с лексической областью видимости (my sub foo {} или state sub foo {}) и алиасы с лексической областью видимости на подпрограммы текущего пакета (our sub foo {}).

Слишком долго (около двух лет) я мечтал этот кусок кода запилить. Даже садился пару раз за это дело, но это запилили без меня. Вроде и досадно, но в то же время приятно. Неоднозначное чувство. Ну ладно, пусть это станет для меня уроком. У меня есть еще пара классных идей к ядру интерпретатора.

Из новых фич самым классным является smart-оператор вместе с given/when и do{}. Осильте ее кто не осилил и, я уверяю, вы влюбитесь в эту конструкцию. Вы сэкономите массу времени!! Правда есть досада - полностью это работает только с 5.12 (в 5.10 более «упрощенная версия», но юзабельно с огладкой).

Абсолютно всех причастных поздравляю с этим событием!

Perl - это не только ЯП. Perl - это определенный склад ума и особый стиль мышления.

«Если ты не осилишь Perl - то Perl осилит тебя» (c) Anonymous

use perl or die.

anonymous
()
Ответ на: комментарий от necromant

Хочу чтобы на ЛОРе когда-нибудь появилась новость, что Perl 5 отмечает своё 55-летие. ;)

fixed

d_Artagnan ★★
()
Ответ на: комментарий от anonymous

Perl - это определенный склад ума и особый стиль мышления.

Полностью согласен. Такой говнокод, который делается на перле, среди разработчиков на других ЯП надо еще поискать.

Даже отступы не соблюдают... Это действительно, определенный склад ума.

d_Artagnan ★★
()

поздравляю с релизом тех, кто пользуется перлом, а себя поздравляю с тем, что уже больше пяти лет экономлю свои и чужие нервы, пользуясь питоном. Без перла было бы трудно оценить чистоту и ясность змейки.

amix ★★★
()
Ответ на: комментарий от grim

Я сейчас проект на питоне лечу. Такого говнокода я еще не видел.

Наверно то что в python называют «говнокодом», в perl просто норма жизни.

В perl даже REPL нормально не предусмотрено. Видимо решили что достаточно PERL, a REPL им не нужен.

Я всегда нелюбил перловую кашу.

Да пошёл ты сам в cpan...

tp_for_my_bunghole
()

Лучше бы добавили поддержку нормальных тредов и адекватное расшаривание сложных структур между тредами.

А то на ithreads без слёз трудно смотреть.

Chaser_Andrey ★★★★★
()

Наделали всякой невоспринемаемой шляпы.На которой даже ихние же гуру кодить без ошибок не могут. Вернити мне мой бейсик, а всю эту абракадабру от больных на голову, в топку.

anonymous
()

Когда там уже повыкидывают всю жесть и сделают нормальные монады?

anonymous
()

жив курилка !

позволяющая применять к символьным классам бинарные операторы,

но ничего не гарантирующая

kto_tama ★★★★★
()
Последнее исправление: kto_tama (всего исправлений: 1)
#!/usr/bin/env perl
use strict;
use warnings;

print "Ого, оно до сих пор живое!O_o\n";
DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от grim

На питоне бывают тоже не всегда отступы соблюдают. Если одни файл писало несколько людей, то там могут встретиться пробелы (разной глубины) и табы :)

Reset ★★★★★
()
Ответ на: комментарий от vitalif

Лучше бы эволюционно и обратно-совместимо исправляли родовые проблемы 5-го.

Вообще-то они этим путем и пошли, где-то даже слайды были об этом. Что для исползования новых возможностей надо будет писать use 5.18, например, а поддержка предыдущей версии будет по умолчанию; устаревшие возможности будут удаляться через две версии, и так далее...

XVilka ★★★★★
()
Ответ на: комментарий от kto_tama

жив курилка !

Дык он еще будет релизиться и в те времена, когда оконячательно подохнут Perl 6 и Perl 7

d_Artagnan ★★
()

Набежали нублоиды которых «Perl осилил». Забавно наблюдать как у некоторых от одного лишь упоминания слова Perl начинаются судороги с лютым баттхертом. Сломана психика, чо.

anonymous
()

Астрологи объявили неделю мёртвых языков. De mortuis aut bene, aut nihil.

Nebuchadnezzar ★★★★
()
Ответ на: комментарий от anonymous

У меня больше :) 1 новый пакет для установки, 680 для удаления. Полный размер загрузки: 2,2 MiB. После этой операции будет освобождено 1,8 GiB.

TakeOver
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.