LINUX.ORG.RU

Perl 5.28

 ,


1

2

Пока ты попивал смузи и катался на гироскутере, серьёзные пацаны подготовили к выпуску Perl 5.28

Что нового?

  • Поддержка Unicode 10.0 (появился символ биткоина).
  • delete можно использовать на срезах:
    my %sanitised_values = delete %input_values{@allowed_keys};
  • Проверка системы письменности на однородность (script runs):
    'Pеrl' =~ /^(*sr:\w+$)/
    Вернёт «ложь», т.к. буква «е» кириллическая. (подробнее о script runs)

Экспериментальные возможности:

Поддержка буквенных синонимов для некоторых утверждений (assertion) регулярных выражений (Осторожно! Может повысить читабельность!):

(?=...)        (*pla:...) or (*positive_lookahead:...)
(?!...)        (*nla:...) or (*negative_lookahead:...)
(?<=...)       (*plb:...) or (*positive_lookbehind:...)
(?<!...)       (*nlb:...) or (*negative_lookbehind:...)
(?>...)        (*atomic:...)

Улучшения производительности:

  • Серьёзно снижены накладные расходы связанные с использованием параметров юникод (\p{...}) в регулярных выражениях.
  • Существенно ускорена множественная конкатенация. Например, следующий код на x86_64 работает в 4 раза быстрее:

    my $s;
    my $a = "ab\x{100}cde";
    my $b = "fghij";
    my $c = "\x{101}klmn";
     
    for my $i (1..10_000_000) {
        $s = "\x{100}wxyz";
        $s .= "foo=$a bar=$b baz=$c";
    }
    

  • sprintf() с фиксированным набором аргументов и строкой формата содержащей только %s и %% работает быстрее.
  • ref() работает намного быстрей в булевом контексте, т.к. больше не создаётся временная строка вроде Foo=ARRAY(0x134af48).
  • Циклы for() и аналогичные конструкции в большинстве ситуаций будут работать быстрей
  • Появилась возможность хранить процедуры в пакетах без использования таблиц имён, что позволяет сэкономить крупные объёмы памяти.

Другие изменения:

  • Ядро почистили от «use vars». Многие продолжают использовать «use vars», что является плохой практикой с момента введения «our» в версии 5.6.0.
  • Новое предупреждение для случаев:

    my $name='Pistachio';
    print "In $name's house";
    

    Рекомендую посмотреть на видео. Возможно улыбнётесь.

Видео: Sawyer X рассказывает о нововведениях и фитчах предыдущих версий, которые ты пропустил.

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

★★★★★

Проверено: Shaman007 ()
Последнее исправление: tailgunner (всего исправлений: 6)

Ответ на: комментарий от bread

Получается так, ведь чтобы ненавидеть мертвый язык нужно быть альтернативно одаренным

Я понимаю что твой девиз «пишу всякую ересь - всё равно проверять никто не будет», но «disliked» переводится как «нелюбимый», а не как «ненавистный». И да, отношение к языку никак не связано с тем, жив он или мертв.

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

Обожаю этот язык. Ко многим языкам отношусь нейтрально. Но перл... это любовь. Сообщество, идеи, {meta}cpan, pod, язык, код, стиль... ❤️

Deleted
()
Ответ на: комментарий от vasya_pupkin

Не, такие вещи случаются с кодерами на любом ЯП. Перл — это где ты можешь не заметить и вместо своей программы запустить то, что набрал твой кот, пройдя по клавиатуре, и оно будет работать и что-то делать.

Virtuos86 ★★★★★
()

Пока ты попивал смузи и катался на гироскутере, серьёзные пацаны подготовили к выпуску Perl 5.28

Чёткий пацан. Так держать.

И да, переходи на Питон, он легче.

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

«Манной кашей блевать легко, зато винегретом красивее» (с)

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

Кодеры — они такие. Впрочем чего еще от макак ожидать.

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

Мне больше нравится тот что чётче

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

Хоть и говорят, что Python легче, но зачастую читать его очень утомительно. Perl емче как-то. Но дело это конечно дело вкуса.

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

Когда уже закопают это дерьмо мамонта?

Вроде на подходе 6-я версия. Блин, какая-то упёртая каста перловиков время от времени всплывает откуда-то. Думаю заповедник изчезаюшего вида находится на мэйл.ру.

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

Достаточно иметь необходимость поддерживать старый код, написанный прошлым поколением извращенцев.

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

В видео столько старых бородатых мужиков, наверное в Хогвардсе сейчас каникулы

вряд ли, многие еще все синие- явно тока что откинулись..

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

Достаточно иметь необходимость поддерживать старый код, написанный прошлым поколением извращенцев.

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

Уволившийся «старый бородатый одмин в свитере» тихо про себя посмеивается, ага подъебал.

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

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

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

Чувачок кроме Турбо Паскаля ничего не знает. Вот он настоящий угар

Учиться, блин, надо. А то выучат свой js и суют яго куда ни попадя

ism ★★★
()
Последнее исправление: ism (всего исправлений: 1)
Ответ на: комментарий от anonymous

Я старым и бородатым больше доверяю, чем молодым и бородатым.

+1!

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

Рад что не зря пыхтел

Да, не зря. Только скоро гипстота, с криками нагрянет. Мужайся...

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

Perl простой и универсальный язык. Им могут пользоваться даже абсолютные булки со знанием программирования на уровне рисования писюнов в лого. Разве это плохо? Верблюд не всегда плохо пахнет. Очень часто он изящней самых грациозных ланей. Perl это другой подход и другой мир. Верблюды ходят по суше, жаба сидит в болоте.

Можешь кидать возмутившие тебя примеры кода, обсудим их вместе. Но лучше не трать нервы на то что тебе неприятно.

perl5_guy ★★★★★
() автор топика

В Xfce4 при установке Perl 5.28 не работают апплеты погоды и скриншотинга экрана. Так что я бы поосторожней отнёсся к обновлению на это самое.

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

Перл - это где сам кодер потом не может в своей проге ничего понять ?

любого касается. как-то заглянул в свое поделие на C лет через так 5... :-D

anonymous
()

Perl - удивительная штука. Позволяет писать очень много емкого кода единолично. Когда ни напарника, ни тестировщика. И работает потом годами.

Deleted
()

ref() работает намного быстрей в булевом контексте, т.к. больше не создаётся временная строка вроде Foo=ARRAY(0x134af48).

Просто позор,что раньше это так криво работало. И, собственно, будет ещё продолжать так криво работать много-много лет, потому что в мире perl не особо принято рассчитывать на запуск приложения на самой свежей версии интерпретатора или даже на позапрошлогодней. Например, у меня почти везде perl 5.16.3, потому что CentOS 7 - корпоративный стандарт (в нашей организации).

DRVTiny ★★★★★
()
Последнее исправление: DRVTiny (всего исправлений: 1)
Ответ на: комментарий от perl5_guy

Главная особенность perl - то, что язык создавал человек с реальным лингвистическим образованием. Поэтому perl получился именно языком в самом широком смысле слова, т.е. самое настоящее средство общения человека с компьютером, средство выражения человеком своих идей и мыслей, не сковывающее ограничения по рукам и ногам, и в этом плане perl разительно контрастирует с такими ортогональными конструкторами с ограниченным количеством продукций, примитивными синтаксисом и лексикой, как тот же python. Потрясающей особенностью perl является то, что те вещи, которые обычно реализуются в ЯП функциями и методами с аляповатыми названиями - на perl пишутся в использованием встроенных в язык синтаксических конструкций (т.е. за счёт использования встроенных языковых средств), и при этом код остаётся очень лаконичным.

Для людей со склонностью к гуманитарным наукам - вообще по-моему только perl и подходит, адекватных альтернатив ему уже давно нет, и Perl6 тоже такой альтернативой не стал.

DRVTiny ★★★★★
()
Последнее исправление: DRVTiny (всего исправлений: 2)
Ответ на: Оно ещё живо? от anonymous

А шо такое? Кто-то тебя заставляет работать с перлом?

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

Накати devtoolset и не мучайся. Там сейчас perl 5.22.

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

и оно будет работать и делать то, что надо ему, а не тебе.

исправил за тебя

Ты поленился исправить, как надо. Сделал это за тебя.

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

Для людей со склонностью к гуманитарным наукам - вообще по-моему только perl и подходит, адекватных альтернатив ему уже давно нет, и Perl6 тоже такой альтернативой не стал.

А кому и зачем нужны кодеры-гуманитарии? От кода программы не требуется полёт мысли, наоборот, она должна походить скорее на нормативный документ с четкой структурой.

Virtuos86 ★★★★★
()
Последнее исправление: Virtuos86 (всего исправлений: 1)
Ответ на: комментарий от Virtuos86

нормативные документы обычно гуманитариями пишутся, бтв

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

Для людей со склонностью к гуманитарным наукам - вообще по-моему только perl и подходит

Это ты про админов штоле? Гуманитарные науки они ж про балабольство, типичного гуманитария кондратий хватит при виде скрипта на перле.

bread
()
Ответ на: комментарий от DRVTiny

Главная особенность perl - то, что язык создавал человек с реальным лингвистическим образованием.

Но он был админом и сделал язык для практиков, даже в названии отражено. А фанбои потом насочиняли мифологии. Гуманитарии тут вообще идут лесом в сторону бейсика, перл же восходит к шеллу и awk и является просто еще одним юникс-инструментом (страшненьким, но удобным в умелых руках). Религия идет в том же направлении, что и гуманитарии.

bread
()
Ответ на: комментарий от Virtuos86

А по-моему она никому и ничего не должна, кроме того, что программа просто выполняет свои функции согласно ТЗ. И уж точно программа на perl не обязана быть легко читаемой растаманами и последователями культа юмористической ТВ-программы в GB.

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

Гуманитарные науки они ж про балабольство, типичного гуманитария кондратий хватит при виде скрипта на перле.

написало нечто с хлебными крошками вместо мозга, куда мир катится

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

Если кот пройдётся по клавиатуре, получившаяся программа на Perl скомпилируется без ошибок?

на J как-то раз даже посчитала что-то.

nisemax
()
Ответ на: комментарий от ism

Пожалуйста, пусть те кто это делают не проводят парадов !

Поздно. KDE-парады уже есть.

jazzman
()
Ответ на: комментарий от Virtuos86

То есть ты вот так вот, резко, решил запретить всем гуманитариям использовать языки программирования? Предлагаю тебе немедленно выйти в Думу с соответствующей законодательной инициативой. Яровая будет в восторге.
А потом под это дело и perl можно будет запретить.

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

И Вы таки имеете что-то сказать против бейсика?

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

ядро линукс на JS.

В природе есть эмулятор х86 на JS! В топку Verilog и прочую маргинальщину!

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