Вышел Perl 5.44

4 мин
Вышел Perl 5.44

В середине июля 2026 года состоялся релиз стабильной ветки языка программирования Perl 5.44. Выход предыдущей стабильной ветки проекта Perl 5.42 случился в июле 2025 года. Ветки проекта Perl 5.40 вышла в июне 2024 года. Выпуск Perl 5.38 был в июле 2023 года.

По данным OpenNET, при подготовке нового выпуска Perl сообщество изменило приблизительно 270 тыс. строк кода (без документации и автоматически сгенерированного кода — 110 тыс. строк кода), а всего изменения затронули 860 файлов, в разработке приняли участие 71 программист и мейнтейнер открытого проекта.

Ветка 5.44 выпущена в соответствии с утверждённым двенадцать лет назад фиксированным графиком разработки, подразумевающим версия новых стабильных веток раз в год и корректирующих релизов — раз в три месяца. Примерно через месяц планируется выпустить начальный корректирующий выпуск Perl 5.44.1, в котором будут исправлены наиболее значительные ошибки, выявленные в ходе внедрения Perl 5.44.0. Одновременно с выходом Perl 5.44 прекращена поддержка ветки 5.40, для которой обновления могут быть выпущены в будущем только в случае выявления критических проблем с безопасностью.

Равным образом стартовал процедура разработки экспериментальной ветки 5.45, на базе которой в июне 2026 года планируется формирование стабильного релиза Perl 5.46, если команда не примет решение перейти к нумерации 7.x.

Основные изменения и дополнения в Perl 5.44:

  • добавлена экспериментальная возможность использования именованных параметров в сигнатурах функций, определяющих перечень передаваемых в функцию переменных не в теле функции, а при её объявлении. Новая возможность позволяет передавать параметры не в строгом порядке следования, а в произвольном порядке с использованием пар ключ/значения и синтаксиса как при назначении элементов в хэшах:

Старый синтаксис: sub f { my ($x, $y) = @_; ...} f(1, 2); Сигнатуры: sub f ($x, $y) { ... } f(1, 2); Сигнатуры с именованными параметрами: sub f (:$x, :$y) { ... } f(y => 2, x => 1);
  • добавлена экспериментальная функция использования алиасов (указателей на указатели) в циклах foreach с несколькими переменными. Реализованная функция позволяет разрабатывать алиас в цикле foreach при единовременном извлечением сразу нескольких значений в одной итерации цикла. Например, можно сформировать алиас для элемента хэша c массивом при переборе разом ключей и значений хэша:

 use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, \@items ) ( %hash ) { say "The $key array contains: @items"; } # До версии 5.44 потребовалось бы выполнять разыменование: foreach my ( $key, $var ) ( %hash ) { say "The $key array contains: @$var"; } # Без экспериментальных возможностей refaliasing и declared_refs: foreach my $key (keys %hash) { say "The $key array contains: @{$hash{$key}}";
  • в регулярных выражениях реализован экспериментальный режим 'enhanced_xx', позволяющий использовать модификатор "/xx" с классами символов в квадратных скобках ([a-zA-Z]) для их разделения на несколько строк или подстановки комментариев. В частности, условие "if ($text =~ m/[a-zA-Z]/){" можно оформить так:

 if ($text =~ m/[ a-z # строчные буквы A-Z # заглавные буквы ]/xx) {
  • в генераторе псевдослучайных чисел для получения энтропии задействован системный вызов getentropy() на системах с его поддержкой (Linux, BSD, macOS). На остальных системах для получения энтропии осуществляется чтение из устройства /dev/urandom или использование хэша от времени, идентификатора процесса и значения указателя;

  • добавлена сопровождение спецификации Unicode 17.0;

  • обеспечено строгое соблюдение правил Unicode для имён идентификаторов и групп регулярных выражений, в которых теперь запрещено использовать приблизительно 160 Unicode-символов, ранее подпадавших под класс "\w". Например, из действия класса "\w", охватывающего все буквы, цифры и символ подчеркивания, выведены латинские буквы в кружках, которые напоминают реальные буквы, но ими не являются. Модификация поведения затрагивает только программы, использующие режим "use utf8";

  • устранены уязвимости, вызванные переполнениями буфера в функциях Perl_study_chunk (CVE-2026-8376, проявляется в 32-разрядных сборках) и S_measure_struct (CVE-2026-57432), а также переполнение 16-разрядного счётчика в Regex-движке (CVE-2026-13221), что может привести к неверному срабатыванию регулярного выражения;

  • запрещён переход при помощи оператора goto на позиции внутри циклов и блочных конструкций. Данная возможность была объявлена устаревшей в 2010 году;

  • проведены оптимизации производительности, ускорившие операции сложения, вычитания и умножения целых чисел, обработку сигнатур функций и заполнение хэшей из списков в формате ключ/значение с известными на этапе компиляции строковыми ключами.

Читают сейчас

Вышел альфа-релиз Paint.NET 5.2 с экспериментальной поддержкой Wine/Linux

58 минут назад

Вышел альфа-релиз Paint.NET 5.2 с экспериментальной поддержкой Wine/Linux

1 сентября 2026 года состоялся выпуск альфа-версии графического редактора с открытым исходным кодом Paint.NET 5.2 для Windows 10/11 (64-бита) и с экспериментальной поддержкой Wine/Linux (Wine 11.14, U

59 минут назад

Операционная платформа «Альт Образование» бесплатна для школ — акция от «Базальт СПО»

Операционная платформа «Альт Образование» бесплатна для школ — акция от «Базальт СПО» Организация «Базальт СПО» запускает специальное предложение для школ: операционная система «Альт Образование» 11 п

Google добавила агентный аналитика видео в Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite

1 час назад

Google добавила агентный аналитика видео в Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite

Google запустила агентный анализ видео для Gemini 3.7 Flash, 3.6 Flash и 3.5 Flash-Lite. Теперь модель анализирует видео не как последовательность кадров с фиксированной частотой, а сама решает, какие

Апдейт платформы «Октопус» от ГК «Юзтех»: историческая анализ и расширенная сопровождение инфраструктур

2 часа назад

Апдейт платформы «Октопус» от ГК «Юзтех»: историческая анализ и расширенная сопровождение инфраструктур

В новых версиях «Октопус» мы сфокусировались на трёх направлениях: расширении возможностей управления ИТ-инфраструктурой, повышении производительности и развитии интеграций. Система получила новые сце

Frank Media рассказал о сложностях, с которыми столкнулись пользователи при попытке воспользоваться цифровым рублём

2 часа назад

Frank Media рассказал о сложностях, с которыми столкнулись пользователи при попытке воспользоваться цифровым рублём

С 1 сентября должно было начаться массовое добавление цифрового рубля — третьей формы денег, которую Банк России обсуждает уже около шести лет. Тем не менее, судя по первым дням запуска, доступ к ново