Вышел Perl 5.38
Новости
Разработчики Perl анонсировали версию 5.38.0, в которую вошли 290 000 строк изменений в 1 500 файлах от 100 авторов.
252 открытий1К показов
Команда Perl опубликовала в своём блоге анонс стабильной версии 38.0 для Perl 5. Загрузить её можно через CPAN по этой ссылке.
Разработчики Perl 5.38.0 работали в течение 12 месяцев для выпуска стабильной версии после Perl 5.36.0. В неё вошли 290 000 строк изменений в 1 500 файлах от 100 авторов.
Ожидается, что первый снапшот Perl v5.39 будет выпущен 20 июля 2023 года. Следующий стабильный релиз Perl должен появиться в первой половине 2024 года.
Вы когда-нибудь писали код на Perl?
Да, я и есть Perl-программист
Да, но я не работаю на Perl
Нет, никогда
Что изменилось в Perl 5.38:
- Доступен новый экспериментальный синтаксис для определения объектных классов, в котором данные на основе экземпляра сохраняются в «поле» переменных, которые ведут себя как лексические переменные.
- Поддерживается Unicode 15.0.
- Теперь все предупреждения об устаревании имеют свою собственную конкретную категорию устаревания, которую можно отключать индивидуально.
- Введен новый хэш под названием %{^HOOK}. Он нужен для простого создания обертки подпрограммы для некоторых ключевых слов Perl. Когда ключевое слово поддерживает какой-либо специальный хук, этот хук будет находиться в новом хэше. В этом выпуске поддерживаются два хука: requirebefore и requireafter. Они предоставляются для упрощения выполнения задач до и после оператора require.
- Добавлена новая переменная среды PERLRANDSEED, которая может использоваться для создания повторяемости в Perl-программе, использующей функцию rand без явного вызова функции srand() или использующей функцию srand() без аргументов.
- Можно назначать значение по умолчанию для параметра в подписи подпрограммы с использованием операторов //= или ||=, чтобы применять значения по умолчанию в случае, если вызывающая сторона предоставила значение undefined или false (соответственно), а не только если параметр совсем отсутствует.
- Запрещено пытаться покинуть блок defer или finally с помощью return или goto.
- Появились две новые функции API optimize_optree и finalize_optree для работы с фрагментами оптри, обеспечивая возможность вызова необходимых частей процесса генерации оптри, которые в противном случае могли бы не вызываться (например, при создании пользовательского LOGOP).
- В Perl версии 5.36.0 были добавлены блоки “defer” и ключевое слово “finally”, которое также позволяет добавлять аналогичное поведение к синтаксису try/catch. Использование оператора goto разрешено, если они имеют постоянную метку назначения и эта метка находится внутри блока.
- На платформах с расширением GNU LC_NAME теперь можно использовать в качестве параметра категории для “setlocale” в POSIX, чтобы установить и запросить свою локаль.
Полный список изменений доступен по этой ссылке.
252 открытий1К показов