Perl 5.36.0 basa programming sadia

Sanggeus sataun pangwangunan, sékrési cabang stabil anyar tina basa programming Perl - 5.36 - geus diterbitkeun. Dina Nyiapkeun release anyar, ngeunaan 250 sarébu garis kode anu robah, parobahan mangaruhan 2000 file, sarta 82 pamekar nyandak bagian dina pangwangunan.

Cabang 5.36 dileupaskeun saluyu sareng jadwal pangembangan tetep disatujuan salapan taun ka pengker, anu nunjukkeun sékrési cabang stabil énggal sataun sakali sareng sékrési koréksi unggal tilu bulan. Dina ngeunaan sabulan, éta rencanana ngaleupaskeun release corrective mimiti Perl 5.36.1, nu bakal ngabenerkeun kasalahan paling signifikan dicirikeun salila palaksanaan Perl 5.36.0. Marengan sékrési Perl 5.36, rojongan pikeun cabang 5.32 ieu dilanjutkeun, nu apdet hareup bisa dileupaskeun ngan lamun masalah kaamanan kritis anu dicirikeun. Prosés ngembangkeun cabang ékspérimén 5.37 ogé geus dimimitian, dina dasar nu release stabil tina Perl 2023 bakal kabentuk dina Méi atawa Juni 5.38, iwal kaputusan dijieun pikeun pindah ka panomeran 7.x.

Parobahan konci:

  • Dukungan pikeun tanda tangan fungsi parantos distabilkeun sareng ayeuna sayogi nalika netepkeun pragma "pamakéan v5.36", ngamungkinkeun anjeun sacara eksplisit nangtukeun daptar variabel anu dianggo dina fungsi sareng ngajadikeun otomatis operasi mariksa sareng napelkeun nilai tina sakumpulan parameter asup. Contona, kode saméméhna dipaké: sub foo { maot "Seueur teuing argumen pikeun subrutin" iwal @_ > = 2; maot "Saeutik teuing argumen pikeun subrutin" iwal @_ <= 2; abdi ($ kénca, $ katuhu) = @_; balik $ kénca + $ katuhu; }

    nalika nganggo tanda tangan, éta tiasa diganti ku:

    sub foo ($ kénca, $ katuhu) {balik $ kénca + $ katuhu; }

    Lamun nelepon foo kalawan leuwih ti dua argumen, juru bakal buang kasalahan. Daptar ogé ngarojong variabel husus "$", nu ngidinan Anjeun pikeun malire sababaraha argumen, contona, "sub foo ($ kénca, $, $ katuhu)" bakal ngidinan Anjeun pikeun nyalin ukur argumen kahiji jeung katilu kana variabel. , Bari persis tilu kudu dibikeun ka argumen fungsi.

    Sintaksis signature ogé ngidinan Anjeun pikeun nangtukeun argumen pilihan jeung nangtukeun nilai standar lamun hiji argumen leungit. Contona, ku nangtukeun "sub foo ($ kénca, $ katuhu = 0)" argumen kadua janten pilihan jeung lamun henteu, nilai 0 diliwatan. tina daptar atawa variabel global. Nangtukeun hash atanapi Asép Sunandar Sunarya tinimbang variabel (contona, "sub foo ($ kénca, @katuhu)") bakal ngidinan hiji atawa leuwih argumen bisa diliwatan.

  • Dina fungsi anu dinyatakeun nganggo tanda tangan, dukungan pikeun ngerjakeun parameter opsional tina "@_" Asép Sunandar Sunarya dinyatakeun ékspérimén sareng bakal ngahasilkeun peringatan (peringatan ngan dikaluarkeun upami @_ dianggo dina fungsi anu dinyatakeun nganggo sintaksis anyar). Contona, peringatan bakal dipintonkeun pikeun fungsi: make v5.36; sub f ($x, $y = 123) {sebutkeun "Argumen kahiji nyaéta $_[0]"; }
  • Stabil sarta sadia nalika nangtukeun "pamakéan v5.36" pragma, operator infiks "isa" pikeun mariksa naha hiji obyék mangrupa conto tina kelas husus atawa kelas diturunkeun tina eta. Contona: lamun( $obj isa Paket::Nami ) { … }
  • Nalika nangtukeun pragma "pamakéan v5.36", processing warning diaktipkeun (mode "pamakéan warnings" diaktipkeun).
  • Nalika nangtukeun pragma "pamakéan v5.36", rojongan pikeun notasi teu langsung pikeun nelepon objék ("fitur teu langsung") ditumpurkeun - cara tinggaleun jaman keur nelepon objék, nu spasi dipaké tinimbang "->" ("metode $ object @param" tinimbang "$object-> $method (@param)"). Salaku conto, tinimbang "abdi $ cgi = CGI anyar" anjeun kedah nganggo "abdi $ cgi = CGI-> anyar".
  • Nalika nangtukeun "pamakéan v5.36" pragma, rojongan pikeun emulating arrays multidimensional na hashes dina gaya Perl 4 ("fitur multidimensional") ditumpurkeun, sahingga indikasi sababaraha kenop bisa ditarjamahkeun kana Asép Sunandar Sunarya panengah (contona, " $hash{1, 2}") dirobah jadi "$hash{join ($;, 1, 2)}").
  • Nalika nangtukeun "pamakéan v5.36" pragma, rojongan pikeun mékanisme branching ékspériméntal ("switch fitur"), sarupa jeung switch sarta pernyataan hal, ditumpurkeun (Perl ngagunakeun dibikeun tur nalika kecap konci). Pikeun ngagunakeun fitur ieu, dimimitian ku Perl 5.36, anjeun kedah sacara eksplisit netepkeun 'pamakéan fitur "switch"', sareng upami anjeun netepkeun "versi nganggo", éta moal diaktipkeun deui sacara otomatis.
  • Rojongan pikeun kelas karakter tambahan dina kurung kuadrat di jero ekspresi biasa geus stabilized sarta geus sadia sacara standar. Fitur ieu ngamungkinkeun anjeun pikeun ngalakukeun pertandingan nganggo aturan canggih pikeun simpang, pangaluaran, sareng ngahijikeun set karakter. Contona, '[AZ - W]' - karakter ti A nepi ka Z teu kaasup W.
  • Rojongan pikeun operasi "(?", "( )", "{ }" jeung "[ ]" sawaréh stabilisasi sarta sadia sacara standar; Anjeun tiasa nganggo simbol "" "", "" "", jsb. Contona. , "qr"pat "".
  • Nyauran fungsi sortir tanpa argumen dilarang, anu ayeuna bakal nyababkeun kasalahan. @a = diurutkeun @kosong; # bakal neruskeun @a = sort; # kasalahan bakal dicitak @a = sort (); # kasalahan bakal dicitak
  • Bandéra garis paréntah anyar "-g" parantos diajukeun, anu ngamungkinkeun modeu ngamuat sadayana file sacara gembleng, tinimbang baris demi baris. Peta bandéra téh sarupa jeung indikasi "-0777".
  • Rojongan pikeun spésifikasi Unicode parantos diropéa kana vérsi 14.0.
  • Nyadiakeun penanganan instan tina floating point exceptions (SIGFPE) sarupa jeung alarm lianna kayaning SIGSEGV, ngidinan Anjeun pikeun ngabeungkeut pawang sorangan pikeun SIGFPE via $SIG{FPE}, contona kaluaran nomer garis dimana masalah lumangsung.
  • Vérsi diropéa tina modul kaasup dina pakét dasar.
  • Ditambahkeun optimasi kinerja. Kamampuhan pikeun nyimpen konci Hash ageung langkung éfisién tanpa nganggo tabel string anu dibagikeun parantos disayogikeun. Kinerja nyiptakeun nilai skalar anyar parantos ningkat sacara signifikan, contona kodeu di handap ayeuna ngajalankeun 30% langkung gancang: $str = "A" x 64; pikeun (0..1_000_000) { @svs = pamisah //, $str }
  • Kode juru mimiti ngagunakeun sababaraha constructs ditetepkeun dina standar C99. Gedong Perl ayeuna butuh kompiler anu ngadukung C99. Rojongan pikeun ngawangun dina vérsi MSVC ++ (pre-VC12) parantos dileungitkeun. Ditambahkeun dukungan pikeun ngawangun di Microsoft Visual Studio 2022 (MSVC ++ 14.3).
  • Rojongan pikeun platform AT&T UWIN, DOS/DJGPP sareng Novell NetWare parantos dileungitkeun.

sumber: opennet.ru

Tambahkeun komentar