Только что вышедшая новая версия Perl 5.40 внесла в язык программирования усовершенствования, обновления безопасности и изменения, развивающие его возможности предыдущей версии 5.38.
В этом обновлении появились новые функции оптимизации и устранения значительных уязвимостей в системе безопасности. Вот об этом подробнее.
Что нового в языке программирования Perl 5.40
Одной из особенностей Perl 5.40 является введение ключевого слова __CLASS__
. Это новое дополнение позволяет более точно находить имена классов в контекстах, основанных на классах, таких как методы и инициализаторы полей. Оно предоставляет ссылку на класс с учетом времени выполнения, что особенно полезно при выполнении конструктора, когда «$self» недоступен.
Кроме того, программисты Perl теперь могут использовать атрибут :reader
для переменных полей класса, чтобы автоматически генерировать методы-аксессоры, упрощая код и повышая его читабельность. Обновление также включает в себя разрешение пробелов в опции -M
командной строки, выравнивая ее с существующим поведением опции -I
.
Значительное усовершенствование синтаксиса связано с введением логического оператора xor ^^
, который дополняет набор логических операторов Perl. В то же время такие функции, как блоки try/catch и итерация по нескольким значениям с помощью for
, перешли из разряда экспериментальных в разряд стабильных, что свидетельствует о зрелости их реализации и надежности.
Что касается безопасности, то в Perl 5.40 исправлены значительные уязвимости, включая CVE-2023-47038, устраняющую проблему переполнения буфера, и CVE-2023-47039, устраняющую риск перехвата бинарных файлов на системах Windows
Что касается несовместимости и устареваний, то в обновлении появились изменения, которые могут повлиять на существующие скрипты, включая корректировку функции reset EXPR
, которая теперь запускает „set magic“ для скаляров, что может повлиять на старые скрипты, где она не имела эффекта.
Кроме того, Perl продолжает отказываться от функций и синтаксиса, которые могут привести к двусмысленности или ошибкам, например, разрешение пустых слов классов в качестве дескрипторов файлов.
В Perl 5.40 также обновлен широкий спектр модулей, от «Archive::Tar» до «IO::Socket::I P», наряду с включением новых модулей, таких как «Term::Table» и «Test2::Suite» в ядро Perl, что уменьшает зависимость от тестирования модулей на CPAN.
Наконец, в новом выпуске улучшена производительность, в том числе оптимизированы операции отрицания и улучшена работа с общими оптимизациями TARGMY, которые могут значительно ускорить выполнение определенных операций.
Разработчикам рекомендуется обратиться к документации Perl и ресурсам сообщества для подробного обзора всех изменений и получения дополнительной информации. Вот анонс; подробно ознакомиться с ключевыми отличиями от предыдущей версии.
Комментарии (0)