From: Sergey Matveev Date: Thu, 25 Jun 2020 12:31:24 +0000 (+0300) Subject: Perl 7 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d4a676bfd4af613cdbd2391dc5a7f6a24f76a428;p=stargrave-blog.git Perl 7 https://www.opennet.ru/opennews/art.shtml?num=53226 У людей (не только в этой статье) почему-то какая-то аллергия на Perl. И мне чисто объективно она не понятна. Ну то бишь да, на нём можно написать нечто, что никто и никогда не поймёт. Можно, грубо говоря, просто попой поелозить по клавиатуре и это запросто будет валидным кодом на Perl-е. Но... зачем же только подобные крайности учитывать? JavaScript, с моей точки зрения, куда ещё более мерзкий язык, но его умудряются даже как-то и любить. Если забыть просто про мою любовь к Perl-у, ибо на нём я, собственно, начинал программировать и годами использовал для всего, то: * Perl, как правило, есть в любой ОС. Внезапно тут узнал что в FreeBSD из коробки его уже не поставляют, но и аналогично куча дистрибутивов GNU/Linux тоже "голые" и могут ничего кроме POSIX shell не иметь. Но, уже среди всех зависимостей Perl появляется зачастую первым делом. * В OpenWRT Perl часто сували в образ (может и сейчас продолжают), ибо он занимал что-то около 800 килобайт и при этом был языком в котором и треды, fork, сигналы, работа с файлами, сетевыми сокетами. Это ровно один исполняемый файл perl5. Да, полная установка Perl со всей документацией и кучей всяких модулей занимает значительно больше, но и без неё в нём выше крыши возможностей * Самое главное: Perl имеет везде одинаковое поведение и нет его 100500 диалектов. Банальный sed имеет отличающееся поведение с -i аргументом: в BSD inplace замену можно сделать только указав временный файл, при этом обязательно слитно с "-i" -- это будет и с GNU sed-ом и с BSD работать одинаково. awk... я не встречал ни одного человека кто бы знал awk, на уровне чуть сложнее чем {print $NF} какой-нибудь. Да и много его диалектов. Написать что-то портируемое на этих инструментах: испытание. Perl везде работает одинаково * Преобладающее большинство однострочников, на замену sed/awk/grep, выглядят гораздо более читабельными, простыми и с "нормальными" регулярками, а не разнообразным зоопарком среди всего этого инструментария! На Perl работа с текстом очень и очень удобна и с гораздо меньшим количеством кода Я регулярно для большого количества задач его применяю (связанных с текстом, как правило). Это тупо быстрее, проще, меньше кода поддерживать и проще его править. Плюс Perl вполне себе очень и очень шустр (относительно Python или какого-нибудь Ruby). Когда-то для "калькулятора" я просто набирал python и там делал вычисления. Но это дико раздражало тем, что он тупо долго запускается, даже с прогретыми кэшами. Сейчас запускаю "zcalc", встроенный в zsh, хотя надо бы что-нибудь с обратной польской нотацией (dc). На OpenWRT вообще де-факто язык это конечно Lua -- насколько помню, один файл килобайт на 50. Но для скриптования и работы с текстом он уже не так удобен. ---