Жилийн хөгжлийн дараа нийтэлсэн Perl програмчлалын хэлний шинэ тогтвортой салбарыг гаргах - 5.44... Хэзээ бэлтгэж байна Шинэ хувилбар нь ойролцоогоор 270 мөр кодыг өөрчилсөн (баримт бичиг болон автоматаар үүсгэгдсэн кодыг оруулаагүй - 110), өөрчлөлтүүд нь 860 файлд нөлөөлсөн бөгөөд 71 хөгжүүлэгч хөгжүүлэлтэд оролцсон.
5.44 салбарыг арван гурван жилийн өмнө тогтоосон тогтмол хөгжүүлэлтийн хуваарийн дагуу гаргасан бөгөөд энэ хуваарьт жилд нэг удаа шинэ тогтвортой салбаруудыг, гурван сар тутамд жижиг хувилбаруудыг гаргахыг заасан байдаг. Эхний жижиг хувилбар болох Perl 5.44.1 нь ойролцоогоор нэг сарын дараа гарахаар төлөвлөгдсөн бөгөөд Perl 5.44.0 хувилбарыг хэрэгжүүлэх явцад илэрсэн хамгийн чухал алдаануудыг зассан. Perl 5.44 хувилбарыг гаргаснаар 5.40 салбарыг дэмжихээ больсон; аюулгүй байдлын чухал асуудлууд илэрсэн тохиолдолд л ирээдүйд шинэчлэлтүүдийг гаргах боломжтой. Эхэлсэн Хэрэв шийдвэр гаргаагүй бол 2027 оны эхний хагаст Perl 5.46-г тогтвортой гаргах үндэс суурь болох туршилтын 5.45 салбарын хөгжлийн үйл явц цааш явах 7.x дугаарлалт руу.
Түлхүүр өөрчлөлт:
- Нэмсэн нэрлэсэн параметрүүдийг ашиглах туршилтын боломж гарын үсэг Функцийн биед биш, харин түүнийг зарлах явцад дамжуулсан хувьсагчдын жагсаалтыг тодорхойлдог функцүүд. Энэхүү шинэ боломж нь параметрүүдийг хатуу дарааллаар биш, харин дурын дарааллаар, түлхүүр/утгын хос болон хэш дэх элементүүдийг оноохтой төстэй синтакс ашиглан дамжуулах боломжийг олгодог:
- хуучин синтакс: sub f { my ($x, $y) = @_; …} f(1, 2);
- гарын үсэг: sub f ($x, $y) { … } f(1, 2);
- нэрлэсэн параметрүүдтэй гарын үсэг: 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 функцууд дахь буферийн халилтаас үүдэлтэй эмзэг байдлыг зассан (CVE-2026-8376, 32 битийн угсралтад гарч ирнэ) болон S_measure_struct (CVE-2026-57432), мөн Regex хөдөлгүүр дэх 16 битийн тоолуурын хэт ачаалал (CVE-2026-13221), энэ нь ердийн илэрхийллийг эвдэж болзошгүй.
- Гогцоо болон блокийн бүтцүүд доторх байрлалууд руу goto операторыг ашиглан үсрэхийг хориглоно. Энэ функцийг 2010 онд ашиглахаа больсон.
- Бүхэл тоог нэмэх, хасах, үржүүлэх, функцийн гарын үсгийн боловсруулалтыг хурдасгах, мөн хөрвүүлэх үед мэдэгдэж буй тэмдэгт мөрийн түлхүүрүүдээр түлхүүр/утгын жагсаалтаас хэшийг дүүргэхийн тулд гүйцэтгэлийн оновчлолыг хийсэн.
Эх сурвалж: linux.org.ru
