Випуск Perl 5.44: нові можливості для програмістів

Випуск Perl 5.44: нові можливості для програмістів

Команда розробників Perl оголосила про випуск Perl 5.44. Це перша стабільна версія нової серії 5.44, яка з’явилася після приблизно 12 місяців розробки з моменту випуску Perl 5.42.

Експериментальна підтримка іменованих параметрів

Найбільш помітною новацією є експериментальна підтримка іменованих параметрів у сигнатурах підпрограм. Досі аргументи в сигнатурах Perl передавалися переважно за їх позицією. Perl 5.44 дозволяє розробникам визначати вибрані параметри, які виклики можуть надавати у вигляді пар “ім’я-значення”.

Наприклад:

sub create_user ($name, :$email, :$active = 1) {...} create_user("John", email => "[email protected]");

Поліпшення для циклів foreach

Perl 5.44 також об’єднує дві експериментальні функції: цикли foreach з кількома змінними та посилання на псевдоніми. Тепер розробники можуть обробляти кілька значень за ітерацію циклу та оголошувати змінні як псевдоніми для посланих даних.

Це дозволяє циклу ітеруватися по парам ключ-зареєстроване масив:

foreach my ($key, @items) (%hash) { say "The $key array contains: @items";}

Оновлення регулярних виразів та підтримка Unicode

В обробці регулярних виразів з модифікатором /xx були розширені можливості. З включеною експериментальною функцією enhanced_xx, класи символів можуть займати кілька рядків і включати коментарі. Perl також може попереджати, коли певна частина шаблону могла бути не навмисно витлумачена як коментар.

Водночас Perl 5.44 вводить нові обмеження для виразів /xx. Використання неекранованого символу # або літературного вертикального пробілу всередині класи символів більше не підтримується.

Що стосується підтримки Unicode 17.0, Perl тепер забезпечує більш суворе дотримання правил Unicode для ідентифікаторів та іменованих груп регулярних виразів. Близько 160 символів, які раніше були прийняті в ширшому інтерпретації Perl, тепер відхиляються, оскільки не відповідають вимогам Unicode.

Виправлення вразливостей і покращена безпека

У безпековій складовій цей випуск усуває три вразливості. Перша, CVE-2026-8376, пов’язана з некоректним розрахунком розміру буфера в Perl_study_chunk, що може призвести до переповнення цілочисельних даних на 32-бітних системах.

Друга, CVE-2026-57432, стосується обробки дуже великих структур, переданих на упаковку або розпаковку. Великий повторний рахунок може викликати переповнення.

Третя вразливість, CVE-2026-13221, впливає на оптимізацію триєдності двигуна регулярних виразів.

Покращення продуктивності та зміни в генераторі псевдовипадкових чисел

Щодо продуктивності, кілька загальних операцій стали трохи швидшими у цьому випуску. А також оптимізовано створення хешів з рядків ключів констант на час компіляції.

Perl 5.44 також змінює спосіб ініціалізації свого внутрішнього генератора псевдовипадкових чисел.

Кінець підтримки Perl 5.40 та плани на майбутнє

З випуском Perl 5.44 підтримка гілки Perl 5.40 офіційно завершена. Розробники очікують на Perl 5.45.1, перший реліз розробки для наступної стабільної гілки, найближчими тижнями. Наступний великий стабільний випуск Perl заплановано на першу половину 2027 року.

Додаткові деталі можна знайти на офіційному сайті Perl.