Perl 5.44 proqramlaşdırma dili mövcuddur

Bir illik inkişafdan sonra Perl proqramlaşdırma dilinin yeni stabil qolu olan 5.44 versiyası buraxıldı. Yeni buraxılışın hazırlanması zamanı təxminən 270 sətir kod dəyişdirildi (sənədləşmə və avtomatik olaraq yaradılan kod istisna olmaqla - 110 sətir), bu da 860 fayla təsir etdi və 71 tərtibatçı onun hazırlanmasına töhfə verdi.

5.44 budağı, on üç il əvvəl müəyyən edilmiş sabit inkişaf cədvəlinə uyğun olaraq buraxılıb və bu cədvələ əsasən, ildə bir dəfə yeni sabit budaqların, üç aydan bir isə kiçik buraxılışların buraxılması nəzərdə tutulur. İlk kiçik buraxılış olan Perl 5.44.1-in təxminən bir ay ərzində buraxılması planlaşdırılır və Perl 5.44.0-ın tətbiqi zamanı aşkar edilən ən əhəmiyyətli səhvlər düzəldilir. Perl 5.44-ün buraxılışı ilə yanaşı, 5.40 budağı üçün dəstək sona çatıb; gələcəkdə yalnız kritik təhlükəsizlik problemləri aşkar edildikdə onun üçün yeniləmələr buraxıla bilər. 7.x versiya nömrələnməsinə keçmək barədə qərar verilmədiyi təqdirdə, 2027-ci ilin birinci yarısında Perl 5.46-nın sabit buraxılışı üçün əsas təşkil edəcək eksperimental 5.45 budağı üzərində inkişafa başlanılıb.

Əsas dəyişikliklər:

  • Funksiya imzalarında adlandırılmış parametrlərdən istifadə etmək üçün eksperimental imkan əlavə edildi. Bu parametrlər funksiyaya funksiya gövdəsində deyil, onun elan edilməsi zamanı ötürülən dəyişənlərin siyahısını müəyyən edir. Yeni imkan parametrləri ciddi qaydada deyil, istənilən qaydada açar/dəyər cütləri və heşlərdə elementlərin təyin edilməsinə bənzər sintaksisdən istifadə edərək ötürməyə imkan verir: Köhnə sintaksis: sub f { my ($x, $y) = @_; …} f(1, 2); İmzalar: sub f ($x, $y) { … } f(1, 2); Adlandırılmış parametrləri olan imzalar: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Çoxdəyişənli foreach döngələrində ləqəblərdən (göstəricilərdən göstəricilərə) istifadə üçün eksperimental dəstək əlavə edildi. Bu xüsusiyyət, tək döngə iterasiyasında birdən çox dəyər əldə edərkən foreach döngəsində ləqəb yaratmağa imkan verir. Məsələn, həm açarlar, həm də heş dəyərləri üzərində iterasiya edərkən massivli heş elementi üçün ləqəb yarada bilərsiniz: v5.44 istifadə edin; 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 versiyasından əvvəl, istinadların kəsilməsi tələb olunacaq: foreach my ( $key, $var ) ( %hash ) { say "The $key array contains: @$var"; } # Eksperimental yenidən aliasing və declared_refs funksiyaları olmadan: foreach my $key (keys %hash) { say "$key massivi aşağıdakıları ehtiva edir: @{$hash{$key}}"; }
  • Normal ifadələr artıq eksperimental 'enhanced_xx' rejiminə malikdir və bu rejim "/xx" modifikatorunun kvadrat mötərizədə simvol sinifləri ilə ([a-zA-Z]) istifadə edilməsinə və onları birdən çox sətir arasında bölməsinə və ya şərhlər daxil etməsinə imkan verir. Məsələn, "if ($text =~ m/[a-zA-Z]/){" şərti belə yazıla bilər: if ($text =~ m/[ a-z # kiçik hərflər A-Z # böyük hərflər ]/xx) {
  • Yalançı təsadüfi ədəd generatoru, onu dəstəkləyən sistemlərdə entropiya əldə etmək üçün getentropy() sistem çağırışından istifadə edir (Linux, BSD, macOSDigər sistemlərdə entropiya /dev/urandom cihazından oxumaqla və ya zamanın, proses ID-sinin və göstərici dəyərinin heşindən istifadə etməklə əldə edilir.
  • Unicode 17.0 spesifikasiyası üçün əlavə dəstək.
  • İdentifikator adları və müntəzəm ifadə qrupları üçün Unicode qaydalarına ciddi riayət olunması təmin edilib və əvvəllər "\w" sinfi tərəfindən əhatə olunan təxminən 160 Unicode simvolu artıq qadağan edilib. Məsələn, bütün hərfləri, rəqəmləri və alt xətt simvolunu əhatə edən "\w" sinfi artıq həqiqi hərflərə bənzəyən, lakin olmayan dairəvi Latın hərflərini istisna edir. Bu davranış dəyişikliyi yalnız "utf8 istifadə et" rejimindən istifadə edən proqramlara təsir göstərir.
  • Perl_study_chunk (32 bitlik versiyalara təsir edən CVE-2026-8376) və S_measure_struct (CVE-2026-57432) funksiyalarındakı bufer daşma zəiflikləri, eləcə də Regex mühərrikindəki (CVE-2026-13221) 16 bitlik əks daşma problemi həll edildi ki, bu da adi ifadənin səhv icrasına səbəb ola bilər.
  • Goto operatorundan istifadə edərək döngələr və blok konstruksiyaları daxilindəki mövqelərə tullanmaq qadağandır. Bu funksiya 2010-cu ildə ləğv edilib.
  • Tam ədədlərin toplanması, çıxılması və vurulmasını, funksiya imzasının emalını və kompilyasiya zamanı məlum olan sətir açarları ilə açar/dəyər siyahılarından heşlərin doldurulmasını sürətləndirmək üçün performans optimallaşdırmaları edilmişdir.

Mənbə: opennet.ru

DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster