После 11 месяцев разработки состоялся (https://www.nntp.perl.org/group/perl.perl5.porters/2019/05/m... релиз новой стабильной ветки языка программирования Perl - 5.30 (https://metacpan.org/release/perl). При подготовке нового выпуска было изменено около 620 тыс. строк кода, изменения затронули 1300 файлов, в разработке приняли участие 58 разработчиков.Ветка 5.30 выпущена в соответствии с утверждённым шесть лет назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.30.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.30.0. Одновременно с выходом Perl 5.30 прекращена поддержка ветки 5.26, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.31, на базе которой в мае 2020 года будет сформирован стабильный релиз Perl 5.32.
Ключевые изменения (https://metacpan.org/pod/release/XSAWYERX/perl-5.30.0/pod/pe...:
- В регулярные выражения добавлена экспериментальная поддержка операций "(?‹!pattern) (https://metacpan.org/pod/perlre#(?%3C!pattern))" и "(?‹=pattern) (https://metacpan.org/pod/perlre#(?%3C=pattern))" для ограниченного обращения к ранее обработанным именованным шаблонам. Определение шаблона должно быть в пределах 255 символов от места обращения;
- До 65534 увеличено максимальное значение спецификатора размера ("n") в блоках "{m,n}" регулярных выражений;
- Добавлена ограниченная поддержка (https://metacpan.org/pod/release/XSAWYERX/perl-5.30.0/pod/pe... масок для выделения определённых категорий символов в регулярных выражениях, охватывая разные наборы Unicode. Например, выражение "qr! \p{nv= /(?x) \A [0-5] \z / }!" позволяет выделить все Unicode-символы, определяющие цифры от 0 до 5, включая тайские или бенгальские варианты написания цифр;
- В регулярных выражениях добавлена поддержка именованных символов
внутри шаблонов, ограниченных одинарными кавычками (qr'\N{name}');
- Поддержка спецификации Unicode обновлена до версии 12.1 (https://www.unicode.org/versions/Unicode12.0.0/). Снят признак экспериментальной разработки с вызовов sv_utf8_downgrade и sv_utf8_decode (https://perldoc.perl.org/perlapi.html), используемых при разработке расширений на языке Си;- Добавлена возможность сборки perl с реализацией операций с локалью, поддерживающей работу в многопоточном режиме (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). Ранее подобная реализация использовалась только при сборке многопоточного варианта Perl, а теперь может быть включена для любых сборок;
- Сочетание флагов "-Dv" (расширенный отладочный вывод) и "-Dr" (отладка регулярных выражений) теперь приводит к включению всех возможных режимов отладки регулярных выражений;- Удалены возможности, ранее объявленные устаревшими:
- В качестве символов-разделителей строк и шаблонов теперь допускается (https://metacpan.org/pod/perldeprecation#Unescaped-left-brac... использование только графем (https://ru.wikipedia.org/wiki/%D0%93%D1%... (запрещены составные символы Unicode).
- Прекращена (https://metacpan.org/pod/perldeprecation#Unescaped-left-brac... поддержка некоторых давно устаревших форм применения в регулярных выражениях символа "{" без его экранирования.
- Запрещено (https://rt.perl.org/Ticket/Display.html?id=125760) использование функций sysread(), syswrite(), recv() и send() с обработчиками ":utf8".
- Запрещено использования определений "my" в изначально ложных условных операторах (например, "my $x if 0").
- Удалена поддержка спецпеременных "$*" и "$#".
Прекращена поддержка неявного вызова функции dump() (теперь нужно явно указывать CORE::dump()).
- Удалена функция File::Glob::glob (нужно использовать File::Glob::bsd_glob).
- В pack() добавлена защита от возврата некорректных последовательностей Unicode.
- До следующего выпуска отложено прекращение поддержки использования в коде XS (блоки на Си) макросов, выполняющих операции с UTF-8.- Оптимизации производительности:
- Ускорено выполнение операций трансляции UTF-8 в раскладку символов (code point (https://en.wikipedia.org/wiki/Code_point)), например, выполнение операции ord("\x7fff") теперь требует выполнения на 12% меньше инструкций. Также увеличена производительность операций проверки корректности последовательностей символов UTF-8;
- Исключены рекурсивные вызовы в функции finalize_op();
- Внесены небольшие оптимизации в код сворачивания идентичных символов и определения классов символов в регулярных выражениях;- Оптимизированы (https://rt.perl.org/Public/Bug/Display.html?id=133677) преобразования знаковых определителей типа в беззнаковые (IV в UV);
- Ускорен алгоритм преобразования целых чисел в строку за счёт обработки разом двух цифр вместо одной;
- Внесены улучшения, подготовленные (https://lgtm.com/projects/g/Perl/perl5/alerts/?mode=tree) по результатам анализа компанией LGTM;- Оптимизирован код в файлах regcomp.c, regcomp.h и regexec.c;
- В регулярных выражениях значительно ускорена обработка шаблонов вида "qr/[^a]/" с символами ASCII.- Возобновлена поддержка платформы Minix3. Обеспечена возможность сборки с использованием компилятора Microsoft Visual Studio 2019 (Visual C++ 14.2);
- Обновлены версии модулей, входящих в базовую поставку. Из основного состава удалены модули B::Debug (https://metacpan.org/pod/B::Debug) и Locale::Codes (https://metacpan.org/pod/Locale::Codes).
URL: https://www.nntp.perl.org/group/perl.perl5.porters/2019/05/m...
Новость: https://www.opennet.me/opennews/art.shtml?num=50725
Для чего нужнен PHP/Ruby/Python/Go, если есть Perl?
Для того, чтобы твой исходник могли прочитать другие мб?
Только для этого?
> Для того, чтобы твой исходник могли прочитать другие мб?
def letshavesomefun(_, __ = type({( )})): __ = type("""
.-=-. .--.
__ .' '. / " )
_ .' '. / .-. \ / .-'\
( \ / .-. \ / / \ \ / / ^
\ `-` / \ `-' / \ `-` /
jgs`-.-` '.____.' `.____.'""", (__,),
{'_'
:__.__dict__[
filter(lambda _: '_' not in _,sorted(__
.__dict__))[:
:-1].pop()]})( {( )} ); return [_
for _ in _ if _ not in __ and
not __._(_)]
или
[#[#[#[#[#[#[#[#[# By TaroOgawa #]#]#]#]#]#]#]#]#]globals()
.update({ "______":
lambda x: globals()
.update(( dict([[x]
*2])))}), ______(((
"Just")))
,______(( "another"
)),______ ("Python"
),______( "Hacker")
];print ( " ".join(
[(Just),( (another)
),(Python ),Hacker]
));______
Читайте на здоровье!
Первая программа не работает.Впрочем, обе не сравнятся с хорошей перловкой. :)
> Первая программа не работает.> Впрочем, обе не сравнятся с хорошей перловкой. :)
Это да, ведь разобраться со сторонними эффектами манкипатчинга третьей либой второй зависимости или какого-нибудь кастомного type-хука на создание своих, более правильных классов-объектов, со своим MRO и поэтессами, сильно легче будет :)
> “Once you’re 99% certain that you’ve found a real bug, ask around. Ask someone at work, at your local Perl Mongers’ meeting, or at a Perl conference. Chances are, it’s still a feature, not a bug.”Причём это не тот нотабуг, что у больных системдой. :)
BEFOREHAND: close door, each window & exit; wait until time. open spellbook, study, read (scan, select, tell us); write it, print the hex while each watches, reverse its length, write again; kill spiders, pop them, chop, split, kill them. unlink arms, shift, wait & listen (listening, wait), sort the flock (then, warn the "goats" & kill the "sheep"); kill them, dump qualms, shift moralities, values aside, each one; die sheep! die to reverse the system you accept (reject, respect); next step, kill the next sacrifice, each sacrifice, wait, redo ritual until "all the spirits are pleased"; do it ("as they say"). do it(*everyone***must***participate***in***forbidden**s*e*x*). return last victim; package body; exit crypt (time, times & "half a time") & close it, select (quickly) & warn your next victim; AFTERWORDS: tell nobody. wait, wait until time; wait until next year, next decade; sleep, sleep, die yourself, die at last
Из какого платяного сундука ты только выпорхнула, моль?! :)
Как показывает практика, среднестатичтические другие не приносят продукту серьезного развития
Сам через месяц станешь совсем другим )
Вопрос должен быть поставлен обратным образом. Зачем нужны эти испражнения мамонта?
Весь интернет в ПХП, а они какие-то другие буквы упоминают еще.
Ну пхп точно отстой. Хуже может только javascript.
ну javascript хоть как-то развивается и становится более-менее адекватным скриптовым языком, а пхп и перлу теперь осталось только разлагаться
и далеко бы он развился без pcre?
На самом деле, это развитие сделало его гораздо более похожим на перл.
Какой весь то? Только всякий интерпайз. Давно уже никто новые проекты на php не пилит, только уж совсем фанатики и у кого wordpress головного возга.
>Давно уже никто новые проекты на php не пилитИ на чём же делается основная масса новых сайтов, по-твоему?
>И на чём же делается основная масса новых гoвно-сайтов, по-твоему?Fix.
На Wordpress же. На то они и гoвносайты.
> Весь интернет в ПХП, а они какие-то другие буквы упоминают еще.У нас и все улицы в г…е, что ж, ни о чём кроме него не говорить теперь?
если все что вы знаете в Интернете у вас ограничено только этими буквами ПХП
это не значит что это и есть "весь интернет"
он "весь" только для вас
Для диванных экспертов и школоты же...
Perl создан для свободных творческих разумных людей. А остальным куда деваться? Вот и…
... безо всякой дряни agile, ci/cd, docker, etc
Практически идеальное описание перла. Со всеми его плюсами и минусами.
> Практически идеальное описание перла. Со всеми его плюсами и минусами.Минус у Перла, по большому счёту, лишь один, причём он же и плюс — мало чем ограниченная свобода выразительных средств. В связи с этим от каждого конкретного человека, севшего писать программу на Перле, зависит, будет ли он строго придерживаться стиля оформления кода и какие именно из этих средств предпочтёт. Этот субъективный фактор и его последствия могут стать проблемой для людей, которым придётся читать и разбирать чужую программу.
+100500
> +100500Зато в Пихтоне эту проблему решили. :) Всем хорош язык, но его фанатская аудитория привносит специфический «душок».
Во всех адекватных языках, включая естественно и Perl, текст программы легко форматируется (или настраивается, если кому приспичило) маленькой утилиткой (напр как в Golang). И только Python, хотя и является замечательным языком, без разговоров и mandatory расставляет пользователя в правильную конфигурацию. Для начинающих программистов и тех кто таковым и остаётся всю свою жизнь, а равно для расеян ;), это вполне неплохая практика (поза). В иных случаях - "Зачем-же! Это же очень и очень!"
https://en.wikipedia.org/wiki/Off-side_ruleПихтон хороший язык. Он располагает к правильному и вдумчивому использованию языковых средств. Но у него есть два недостатка: пихтономакаки и пихтономакаки.
Кто хочет большей свободы самовыражения в творчестве, для тех есть Перл и пр.
Именно
Чтобы работать, а не дрючиться.
> Например, выражение "qr! \p{nv= /(?x) \A [0-5] \z / }!" позволяет выделить все Unicode-символы, определяющие цифры от 0 до 5, включая тайские или бенгальские варианты написания цифрА есть регулярка для определения глупых комментариев и плоских шуток?
Как твоя?
А что, есть для определения как у него? Покажите? Или есть для определения как не у него? Покажите?
А если нет ни того, ни другого, к чему глупые вопросы?
Это просто и неинтересно, такой регуляркой является зеркало.
> Это просто и неинтересно, такой регуляркой является зеркало.Значит Perl ненужен
DrWeb и VMware об этом расскажи
А что у них на перле?
> ненуженНе нужны анонимы, не осилившие правописание частицы "не" с прилагательными.
Долгих лет!
обновили обфустрикатор мыслей
> обновили обфустрикатор мыслейСдаётся мне, мысли начинаются как минимум с понимания смысла слов.
Здесь должна быть картинка про кота:* А что если не язык виноват, а моозги блендором перемешали?
* Да не фигня какая-то...
Долгих лет Perl! Единственный скриптовый язык, который легко прикручивается и плюс минус одинаково работает на Windows, Linux, Solaris и AIX.Никакие питоны и рядом не стояли.
Perl, Solaris, AIX. Они все друг друга стоят.
HP-UX забыл. Не, ну серьезно, перезжали с HP-UX на AIX - с Perl проблем почти не было.
Да, винюсь. С ним практически не работаю, вот и вылетело...
Нельзя скобки использовать в регулярных выражениях /^.{5}/
или это говорится про символ скобки в тексте /Пример \{текста со скобками\}/ ?
второе
Возобновление поддержки миникс это конечно самый эпик.
> Возобновление поддержки миникс это конечно самый эпик.Intel проспонсировал
> Удалена поддержка спецпеременных "$*" и "$#"А это за что?! Было удобно :(
Согласно https://perldoc.perl.org/perlvar.html $* и $# были удалены аж в v 5.10.
путались с семантикой cshных $*/$# , причем $#argv оставалась cshной, и использовались полутора инвалидами, сбивая с толку всех остальных (в коде сильно где-то ниже $* находится /какаятохрень/, которая работает совершенно не так как ты думаешь)чего в том удобного - никто, кроме тебя, не в курсе
Лучший скриптовый язык "in the universe" ! Всем советую.
Active Perl - что не даёт 32-битную версию уже?
- в чём отличия Strawberry Perl от Active Perl ?
Strawberry это «полный» дистрибутив, включающий в себя, ко всему прочему, gcc. Во-вторых, это FOSS-проект.Ну а ActivePerl, в свою очередь, неполный (но с проприетарными дополнениями) и с проприетарным владельцем. Зато у него удобная справка в HTML и ещё какие-то плюшки от компании ActiveState, которыми я никогда не пользовался (Perl Development Kit Pro), а также теоретически лучшая интеграция с Komodo IDE и Komodo Edit.
хотя лучше perldoc один фиг никто ничего не придумал да)
> хотя лучше perldoc один фиг никто ничего не придумал да)У ActiveState HTML-документация весьма приятно оформлена и удобна, надо отдать им должное.
Это же просто автоматически преобразованный perldoc
P.S. При чём, преобразованный не чем-то, что создано ActiveState
> Это же просто автоматически преобразованный perldoc
> P.S. При чём, преобразованный не чем-то, что создано ActiveStateВозможно. В последний раз я использовал ActivePerl в середине прошлого (нулевого) десятилетия.
>> Это же просто автоматически преобразованный perldoc
>> P.S. При чём, преобразованный не чем-то, что создано ActiveState
> Возможно. В последний раз я использовал ActivePerl в середине прошлого (нулевого) десятилетия.Так я говорил про ещё более ранние времена (1999-2000 гг)
> До следующего выпуска отложено прекращение поддержки использования в коде XS (блоки на Си) макросов, выполняющих операции с UTF-8.Что-то я не понял смысл этого "изменения".
Зачем нужен Perl, если есть Rust?
Зачем нужен руст когда есть АЛГОЛ
зачем нужен алгол, когда есть асм)
> Зачем нужен Perl, если есть Rust?Под AIX уже завезли?
>> Зачем нужен Perl, если есть Rust?
> Под AIX уже завезли?И ты можешь обосновать, зачем понадобился этот ваш Хрясь в солидном взрослом AIXе?
Зачем нужен мозг если есть go?
Perl шикарен... до сих пор использую в практике автоматизации сисадминского скриптинга))
Ты решил до конца (жизни) пенсионного возраста работать в этой же конторе? Кто, если что, будет поддерживать эту "радость"? Термин "Vendor-lock" был известен довольно давно. Пора вводить "Perl-lock" :)
Ты не видел его код что бы делать такие заявления
Ребята все никак не узнали, что на перле, вообще говоря, не обязательно писать что-то в стиле знаменитого однострочника