Perl 5.28.0'ın çıkışından bir yıl sonra sürüm gerçekleşti Perl 5.30.0.
Önemli değişiklikler:
- Unicode sürüm 11, 12 ve taslak 12.1 için destek eklendi;
- "{m, n}" biçimindeki düzenli ifade niceleyicisinde verilen "n" üst sınırı iki katına çıkarılarak 65534'e çıkarılmıştır;
- Unicode özellik değeri belirtimlerindeki meta karakterler artık kısmen desteklenmektedir;
- qr'N{name}' için destek eklendi;
- Perl artık her zaman yerel iş parçacığı açısından güvenli işlemleri kullanacak şekilde derlenebilir;
- Sınırlı değişken uzunluk ve normal ifade modeli artık deneysel olarak destekleniyor;
- Artık UTF-8'e dönüştürmek için daha hızlı bir yöntem kullanılıyor;
- Türkçe UTF-8 yerel ayarları artık sorunsuz bir şekilde destekleniyor;
- OpASSIGN makrosunun kullanımı çekirdekten kaldırıldı;
Kaldırılan işlevler ve uyumsuz değişiklikler:
- Kaldırılan modüller: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Desen ayırıcılar artık grafik olmalıdır;
- Ayırıcılar artık grafik şeklinde olmalıdır;
- Normal ifade kalıplarında, çıkışsız sol parantez "{"nin önceden kullanımdan kaldırılan bazı kullanımları artık yasaktır;
- $['a (ilk dizi öğesinin dizini) sıfır dışında bir değer atamak artık ölümcül;
- Daha önce kullanımdan kaldırılan sysread()/syswrite() işlevi, :utf8 ile çalışırken artık ölümcüldür.
- yanlış koşullarda my() artık devre dışı;
- Kullanımdan kaldırıldı $* (çok satırlı eşleştirmeyi etkinleştirmek için kullanılan değişken ve Perl v5.10.0'da kaldırıldı) ve $# (çıktı numaralarını biçimlendirmek için kullanılan değişken ve Perl v5.10'da kaldırıldı.);
- dump() işlevinin niteliksiz kullanımı artık kullanımdan kaldırılmıştır;
- Kaldırılan Dosya::Glob::glob();
- pack() artık geçersiz UTF-8 döndüremez;
- Genel bir koddaki herhangi bir sayı kümesi, başka bir kod tarafından yürütülen bir kodda geçerlidir;
- JSON::PP varsayılan olarak izin_nonref'i içerir;
Kullanımdan kaldırılan işlevsellik:
- Artık XS kodunda UTF-8'i işleyen çeşitli makroları kullanamazsınız;
Kaynak: linux.org.ru