Жилийн турш хөгжүүлсний дараа Perl програмчлалын хэлний шинэ тогтвортой салбар болох 5.44 хувилбарыг гаргасан. Шинэ хувилбарыг бэлтгэх явцад ойролцоогоор 270 мөр кодыг өөрчилсөн (баримт бичиг болон автоматаар үүсгэгдсэн кодыг оруулаагүй - 110 мөр), энэ нь 860 файлд нөлөөлсөн бөгөөд 71 хөгжүүлэгч үүнийг хөгжүүлэхэд хувь нэмэр оруулсан.
5.44 салбарыг арван гурван жилийн өмнө тогтоосон тогтмол хөгжүүлэлтийн хуваарийн дагуу гаргасан бөгөөд энэ хуваарьт жилд нэг удаа шинэ тогтвортой салбаруудыг, гурван сар тутамд жижиг хувилбаруудыг гаргахыг заасан байдаг. Эхний жижиг хувилбар болох Perl 5.44.1 нь ойролцоогоор нэг сарын дараа гарахаар төлөвлөгдсөн бөгөөд Perl 5.44.0 хувилбарыг хэрэгжүүлэх явцад илэрсэн хамгийн чухал алдаануудыг зассан. Perl 5.44 хувилбарыг гаргахтай зэрэгцэн 5.40 салбарыг дэмжихээ больсон; аюулгүй байдлын чухал асуудлууд илэрсэн тохиолдолд л ирээдүйд шинэчлэлтүүдийг гаргах боломжтой. Туршилтын 5.45 салбар дээр хөгжүүлэлт эхэлсэн бөгөөд энэ нь 7.x хувилбарын дугаарлалт руу шилжих шийдвэр гаргаагүй тохиолдолд 2027 оны эхний хагаст Perl 5.46 тогтвортой хувилбарын үндэс суурь болно.
Гол өөрчлөлтүүд:
- Функцийн гарын үсэгт нэрлэсэн параметрүүдийг ашиглах туршилтын чадварыг нэмсэн. Эдгээр параметрүүд нь функцэд дамжуулсан хувьсагчдын жагсаалтыг функцийн биед биш, харин түүнийг зарлах явцад тодорхойлдог. Шинэ боломж нь параметрүүдийг хатуу дарааллаар биш, харин түлхүүр/утгын хос болон хэш дэх элементүүдийг оноохтой төстэй синтакс ашиглан дурын дарааллаар дамжуулах боломжийг олгодог: Хуучин синтакс: sub f { my ($x, $y) = @_; …} f(1, 2); Signatures: sub f ($x, $y) { … } f(1, 2); Нэрлэсэн параметртэй Signatures: sub f (:$x, :$y) { … } f(y => 2, x => 1);
- Олон хувьсагчтай foreach давталтад alias (заагч руу заагч) ашиглах туршилтын дэмжлэг нэмэгдсэн. Энэ функц нь нэг давталтын давталтад олон утгыг авах үед foreach давталтад alias үүсгэх боломжийг танд олгоно. Жишээлбэл, та хэшийн түлхүүр болон утгуудын аль алиныг нь давтах үед массивтай хэш элементийн alias үүсгэж болно: v5.44-г ашиглах; use feature qw(refaliasing declared_refs); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, \@items ) ( %hash ) { say "$key массив нь: @items"; } # 5.44 хувилбараас өмнө лавлагааг цуцлах шаардлагатай болно: foreach my ( $key, $var ) ( %hash ) { say "$key массив нь: @$var"; } # Туршилтын дахин нэрлэх болон declared_refs функцгүйгээр: foreach my $key (keys %hash) { say "$key массив нь дараах зүйлсийг агуулдаг: @{$hash{$key}}"; }
- Тогтмол илэрхийллүүд одоо туршилтын 'enhanced_xx' горимтой болсон бөгөөд энэ нь "/xx" хувиргагчийг дөрвөлжин хаалтанд ([a-zA-Z]) байгаа тэмдэгтийн ангиллуудтай хамт ашиглах боломжийг олгодог бөгөөд тэдгээрийг олон мөрөнд хуваах эсвэл тайлбар оруулах боломжийг олгодог. Жишээлбэл, "if ($text =~ m/[a-zA-Z]/){" нөхцөлийг дараах байдлаар бичиж болно: if ($text =~ m/[ a-z # жижиг үсэг A-Z # том үсэг ]/xx) {
- Псевдо-санамсаргүй тооны генератор нь getentropy() системийн дуудлагыг ашиглан үүнийг дэмждэг системүүд дээр энтропи олж авдаг (Linux, BSD, macOS). Бусад системүүд дээр энтропийг /dev/urandom төхөөрөмжөөс унших эсвэл цаг, процессийн ID болон заагчийн утгын хэшийг ашиглан олж авдаг.
- Юникод 17.0-ын тодорхойлолтод дэмжлэг нэмсэн.
- Тодорхойлогч нэрс болон тогтмол илэрхийллийн бүлгүүдэд Unicode дүрмийг чанд баримтлахыг баталгаажуулсан бөгөөд өмнө нь "\w" класст хамрагддаг байсан ойролцоогоор 160 Unicode тэмдэгтийг одоо хориглосон. Жишээлбэл, бүх үсэг, цифр болон доогуур зураастай тэмдэгтийг хамардаг "\w" класс нь одоо жинхэнэ үсэгтэй төстэй боловч тийм биш хүрээлэгдсэн Латин үсгийг оруулаагүй болно. Энэхүү зан төлөвийн өөрчлөлт нь зөвхөн "utf8 ашиглах" горимыг ашигладаг програмуудад л нөлөөлнө.
- Perl_study_chunk (32 битийн хувилбаруудад нөлөөлдөг CVE-2026-8376) болон S_measure_struct (CVE-2026-57432) функцууд дахь буферийн хэт ачааллын эмзэг байдлыг, мөн Regex хөдөлгүүр (CVE-2026-13221) дахь 16 битийн эсрэг хэт ачааллыг зассан бөгөөд энэ нь ердийн илэрхийллийг буруу гүйцэтгэхэд хүргэж болзошгүй юм.
- Гогцоо болон блокийн бүтцүүд доторх байрлалууд руу goto операторыг ашиглан үсрэхийг хориглоно. Энэ функцийг 2010 онд ашиглахаа больсон.
- Бүхэл тоог нэмэх, хасах, үржүүлэх, функцийн гарын үсгийн боловсруулалтыг хурдасгах, мөн хөрвүүлэх үед мэдэгдэж буй тэмдэгт мөрийн түлхүүрүүдээр түлхүүр/утгын жагсаалтаас хэшийг дүүргэхийн тулд гүйцэтгэлийн оновчлолыг хийсэн.
Эх сурвалж: opennet.ru
