Selepas setahun pembangunan diterbitkan pelepasan cabang stabil baru bahasa pengaturcaraan Perl - 5.44. Pada menyediakan Keluaran baharu ini telah mengubah kira-kira 270 baris kod (tidak termasuk dokumentasi dan kod yang dijana secara automatik - 110), perubahan tersebut telah menjejaskan 860 fail dan 71 pembangun telah mengambil bahagian dalam pembangunan tersebut.
Cawangan 5.44 telah dikeluarkan mengikut jadual pembangunan tetap yang ditetapkan tiga belas tahun yang lalu, yang memerlukan pengeluaran cawangan stabil baharu sekali setahun dan keluaran kecil setiap tiga bulan. Keluaran kecil pertama, Perl 5.44.1, dijadualkan untuk dikeluarkan dalam masa kira-kira sebulan, membetulkan pepijat paling ketara yang ditemui semasa pelaksanaan Perl 5.44.0. Dengan keluaran Perl 5.44, sokongan untuk cawangan 5.40 telah tamat; kemas kini untuknya mungkin dikeluarkan pada masa hadapan hanya jika isu keselamatan kritikal ditemui. Telah bermula proses pembangunan cabang eksperimen 5.45, yang akan menjadi asas untuk keluaran stabil Perl 5.46 pada separuh pertama tahun 2027, melainkan keputusan dibuat pergi balik kepada penomboran 7.x.
kunci perubahan:
- Ditambah kemungkinan eksperimen menggunakan parameter yang dinamakan dalam tandatangan Fungsi yang mentakrifkan senarai pembolehubah yang dihantar kepada fungsi bukan dalam badan fungsi, tetapi semasa pengisytiharannya. Ciri baharu ini membolehkan parameter dihantar bukan dalam susunan yang ketat, tetapi dalam sebarang susunan, menggunakan pasangan kunci/nilai dan sintaks yang serupa dengan menetapkan elemen dalam hash:
- sintaks lama: sub f { saya ($x, $y) = @_; …} f(1, 2);
- tandatangan: subf ($x, $y) { … } f(1, 2);
- tandatangan dengan parameter bernama: sub f (:$x, :$y) { … } f(y => 2, x => 1);
- Sokongan eksperimental untuk menggunakan alias (penunjuk kepada penunjuk) dalam gelung foreach dengan berbilang pembolehubah telah ditambah. Ciri ini membolehkan anda mencipta alias dalam gelung foreach apabila mendapatkan berbilang nilai dalam lelaran gelung tunggal. Contohnya, anda boleh mencipta alias untuk elemen hash dengan array apabila melakukan iterasi ke atas kedua-dua kekunci dan nilai hash: 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"; } # Sebelum versi 5.44, penyahrujukan diperlukan: foreach my ( $key, $var ) ( %hash ) { say "The $key array contains: @$var"; } # Tanpa ciri-ciri pengubahsuaian eksperimen dan declared_refs: foreach my $key (keys %hash) { say "Array $key mengandungi: @{$hash{$key}}"; }
- Dalam ungkapan biasa dilaksanakan Mod 'enhanced_xx' eksperimental membolehkan pengubah suai /xx digunakan dengan kelas aksara dalam kurungan segi empat sama ([a-zA-Z]) untuk memisahkannya merentasi berbilang baris atau untuk memasukkan komen. Contohnya, syarat if ($text =~ m/[a-zA-Z]/){ boleh ditulis sebagai: if ($text =~ m/[a-z # huruf kecil A-Z # huruf besar ]/xx) {
- Penjana nombor pseudo-rawak menggunakan panggilan sistem getentropy() untuk mendapatkan entropi pada sistem yang menyokongnya (Linux, BSD, macOS). Pada sistem lain, entropi diperoleh dengan membaca daripada peranti /dev/urandom atau menggunakan hash bagi masa, ID proses dan nilai penunjuk.
- Menambah sokongan spesifikasi Unicode 17.0.
- Pematuhan ketat terhadap peraturan Unicode telah dipastikan untuk nama pengecam dan kumpulan ungkapan biasa, dengan kira-kira 160 aksara Unicode yang sebelum ini dilindungi oleh kelas w kini dilarang. Contohnya, kelas w, yang merangkumi semua huruf, digit dan aksara garis bawah, kini tidak termasuk huruf Latin yang dilingkari, yang menyerupai huruf sebenar tetapi tidak. Perubahan tingkah laku ini hanya mempengaruhi program yang menggunakan mod use utf8.
- Memperbaiki kelemahan yang disebabkan oleh limpahan penimbal dalam fungsi Perl_study_chunk (CVE-2026 8376-, muncul dalam pemasangan 32-bit) dan S_measure_struct (CVE-2026 57432-), serta limpahan kaunter 16-bit dalam enjin Regex (CVE-2026 13221-), yang boleh menyebabkan ungkapan biasa gagal.
- Melompat ke kedudukan dalam gelung dan binaan blok menggunakan operator goto adalah dilarang. Ciri ini telah ditamatkan pada tahun 2010.
- Pengoptimuman prestasi telah dibuat untuk mempercepatkan penambahan, penolakan dan pendaraban integer, pemprosesan tandatangan fungsi dan mengisi hash daripada senarai kunci/nilai dengan kunci rentetan yang diketahui pada masa kompilasi.
Sumber: linux.org.ru
