Година след пускането на Perl 5.28.0 беше направен релиз Perl 5.30.0.
Важно изменение:
- Добавена е поддръжка за Unicode версии 11, 12 и черновата версия 12.1;
- Горната граница на «n», зададена в квантфикатора за регулярни изрази във формата «{m, n}», бе удвоена до 65534;
- Метасимволите в спецификациите на стойностите на Unicode сега сa частично поддържани;
- Добавена е поддръжка за qr’N{name}’;
- Сега можете да компилирате Perl, за да използвате винаги потокобезопасни операции с локали;
- Ограничена дължина на променливата при съпоставяне със шаблон от регулярния израз сега се поддържа експериментално;
- Сега се използва по-бърз метод за конвертиране в UTF-8;
- Тюркските локали за UTF-8 вече се поддържат без проблеми;
- Изключено е използването на макроса opASSIGN от ядрото;
Функционалности, които бяха премахнати, и несъвместими промени:
- Премахнати са модулите: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Разделителите на шаблони сега трябва да бъдат графеми;
- Разделителите сега трябва да бъдат графеми;
- Някои преди това остарели начини за използване на неекранираната лява скоба «{» в шаблони на регулярни изрази сега са забранени;
- Присвояването на ненулева стойност на променливата $[ (индекс на първия елемент на масива) сега е фатално;
- Предишно остарелите sysread() и syswrite() при обработка :utf8 сега са фатални.
- my() в неверни условия сега е забранено;
- Счита се за остаряла $* (променливата, използвана за включване на търсене на многострочни съвпадения и премахната в Perl v5.10.0) и $# (променливата, използвана за форматиране на изходящи числа и премахната в Perl v5.10.);
- Счита се за остаряла неквалифицираната употреба на dump();
- Премахната е File::Glob::glob();
- pack() вече не може да връща невалиден UTF-8;
- Всеки набор от цифри в общия скрипт е допустим в скрипт, изпълняван от друг скрипт;
- JSON::PP по подразбиране включва allow_nonref;
Остаряла функционалност:
- Сега не може да се използват различни макроси в кода XS, които обработват UTF-8;
Източник: linux.org.ru

