Perl 5.44


3

Bir yıllık geliştirmenin ardından yayınlanan Perl programlama dilinin yeni ve kararlı bir dalının piyasaya sürülmesi - 5.44. en hazırlamak Yeni sürüm yaklaşık 270 satır kodu değiştirdi (belgeleme ve otomatik olarak oluşturulan kod hariç - 110), değişiklikler 860 dosyayı etkiledi ve geliştirme sürecine 71 geliştirici katıldı.

5.44 dalı, on üç yıl önce belirlenen ve yılda bir kez yeni kararlı dalların ve üç ayda bir küçük sürümlerin yayınlanmasını öngören sabit geliştirme takvimine uygun olarak yayınlandı. İlk küçük sürüm olan Perl 5.44.1'in yaklaşık bir ay içinde yayınlanması planlanıyor ve Perl 5.44.0'ın uygulanması sırasında keşfedilen en önemli hataları düzeltiyor. Perl 5.44'ün yayınlanmasıyla birlikte 5.40 dalı için destek sona erdi; gelecekte yalnızca kritik güvenlik sorunları keşfedilirse güncellemeler yayınlanabilir. başladı Deneysel 5.45 dalının geliştirme süreci, aksi bir karar alınmadığı takdirde, 2027 yılının ilk yarısında Perl 5.46'nın kararlı sürümünün temelini oluşturacaktır. hareket 7.x numaralandırmasına.

Anahtar değişiklikler:

  • Katma Adlandırılmış parametrelerin deneysel olarak kullanılma olasılığı imzalar Fonksiyonun gövdesinde değil, tanımlanması sırasında fonksiyona geçirilen değişkenlerin listesini tanımlayan fonksiyonlar. Bu yeni özellik, parametrelerin kesin bir sırada değil, herhangi bir sırada, anahtar/değer çiftleri ve hash'lerde eleman atamaya benzer bir sözdizimi kullanılarak geçirilmesine olanak tanır:
    • Eski sözdizimi: sub f { my ($x, $y) = @_; …} f(1, 2);
    • imzalar: alt f ($x, $y) { … } f(1, 2);
    • Adlandırılmış parametrelere sahip imzalar: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Birden fazla değişken içeren foreach döngülerinde takma adlar (işaretçilere işaretçiler) kullanmak için deneysel destek eklendi. Bu özellik, tek bir döngü yinelemesinde birden fazla değer alırken foreach döngüsünde bir takma ad oluşturmanıza olanak tanır. Örneğin, hash'in hem anahtarları hem de değerleri üzerinde yineleme yaparken bir hash öğesi için bir dizi içeren bir takma ad oluşturabilirsiniz: 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 sürümünden önce, işaretçi çözme işlemi gerekli olurdu: foreach my ( $key, $var ) ( %hash ) { say "The $key array contains: @$var"; } } # Deneysel yeniden adlandırma ve declared_refs özellikleri olmadan: foreach my $key (keys %hash) { say "The $key array contains: @{$hash{$key}}"; }
  • Düzenli ifadelerde uygulanan Deneysel 'enhanced_xx' modu, köşeli parantez içindeki karakter sınıflarıyla ([a-zA-Z]) birlikte /xx değiştiricisinin kullanılmasını sağlayarak bunları birden fazla satıra bölmeyi veya yorum eklemeyi mümkün kılar. Örneğin, if ($text =~ m/[a-zA-Z]/){ koşulu şu şekilde yazılabilir: if ($text =~ m/[ a-z # küçük harfler A-Z # büyük harfler ]/xx) {
  • Sözde rastgele sayı üreteci, destekleyen sistemlerde entropiyi elde etmek için getentropy() sistem çağrısını kullanır (LinuxBSD, macOSDiğer sistemlerde ise entropi, /dev/urandom aygıtından okuma yapılarak veya zaman, işlem kimliği ve işaretçi değerinin karma değeri kullanılarak elde edilir.
  • Spesifikasyon desteği eklendi Unicode 17.0.
  • Tanımlayıcı adları ve düzenli ifade grupları için Unicode kurallarına sıkı sıkıya uyulması sağlanmıştır; daha önce w sınıfı tarafından kapsanan yaklaşık 160 Unicode karakteri artık yasaklanmıştır. Örneğin, tüm harfleri, rakamları ve alt çizgi karakterini kapsayan w sınıfı, artık gerçek harflere benzeyen ancak harf olmayan daire içine alınmış Latin harflerini hariç tutmaktadır. Bu davranış değişikliği yalnızca utf8 modunu kullanan programları etkiler.
  • Perl_study_chunk fonksiyonlarında arabellek taşmalarından kaynaklanan güvenlik açıkları düzeltildi (CVE-2026-8376(32 bit derlemelerde görünür) ve S_measure_struct (CVE-2026-57432), ayrıca Regex motorundaki 16 bitlik sayacın taşması (CVE-2026-13221Bu durum, normal ifadenin başarısız olmasına neden olabilir.
  • Döngüler ve blok yapıları içindeki konumlara goto operatörü kullanılarak atlamak yasaktır. Bu özellik 2010 yılında kullanımdan kaldırılmıştır.
  • Tamsayı toplama, çıkarma ve çarpma işlemlerini, fonksiyon imzası işlemeyi ve derleme zamanında bilinen dize anahtarlarıyla anahtar/değer listelerinden karma tabloları doldurmayı hızlandırmak için performans optimizasyonları yapıldı.

Kaynak: linux.org.ru

DDoS korumalı siteler, VPS VDS sunucuları için güvenilir hosting satın alın 🔥 DDoS korumalı, güvenilir VPS ve VDS sunucu barındırma hizmeti satın alın | ProHoster