Perl 5.36.0 ulimi lokuhlela luyatholakala

Ngemva konyaka wokuthuthukiswa, ukukhululwa kwegatsha elisha elizinzile lolimi lwezinhlelo ze-Perl, 5.36, kushicilelwe. Lapho ulungiselela ukukhululwa okusha, cishe imigqa yekhodi eyizinkulungwane ezingu-250 yashintshwa, izinguquko zathinta amafayela angu-2000, abathuthukisi be-82 babambe iqhaza ekuthuthukisweni.

Igatsha 5.36 likhishwa ngokuhambisana neshejuli yentuthuko engaguquki eyamukelwa eminyakeni eyisishiyagalolunye edlule, okusho ukukhululwa kwamagatsha amasha azinzile kanye ngonyaka kanye nokukhishwa kokulungisa njalo ngemva kwezinyanga ezintathu. Ukukhishwa kokuqala kokulungisa kwe-Perl 5.36.1 kuhlelelwe ukukhishwa esikhathini esingangenyanga, kulungisa iziphazamisi ezibaluleke kakhulu ezikhonjwe phakathi nokuqaliswa kwe-Perl 5.36.0. Kanye nokukhishwa kwe-Perl 5.36, ukusekelwa kwegatsha le-5.32 kwehlisiwe, okungabuyekezwa kuphela esikhathini esizayo uma kuhlonzwa izinkinga ezibucayi zokuphepha. Inqubo yokuthuthukisa yegatsha lokuhlola le-5.37 nayo isiqalile, lapho ukukhishwa okuzinzile kwe-Perl 2023 kuzokwakhiwa ngoMeyi noma ngoJuni 5.38, ngaphandle kwalapho kwenziwa isinqumo sokuthuthela kunombolo engu-7.x.

Izinguquko ezibalulekile:

  • Ukusekelwa kwamasiginesha okusebenza kuzinzile futhi manje sekuyatholakala uma kucaciswa i-pragma "use v5.36", ekuvumela ukuthi uchaze ngokusobala uhlu lokuguquguqukayo olusetshenziswa emsebenzini futhi wenze ngokuzenzakalelayo ukusebenza kokuhlola nokwabela amanani kusuka ohlwini. yamapharamitha wokufaka. Isibonelo, ikhodi esetshenziswe ngaphambilini: i-sub foo { die "Izimpikiswano eziningi kakhulu zendlela engaphansi" ngaphandle kokuthi @_ >= 2; fa "Izimpikiswano ezimbalwa kakhulu zendlela engaphansi" ngaphandle kokuthi @_ <= 2; yami($kwesokunxele, $kwesokudla) = @_; buyisela i-$ kwesokunxele + $ kwesokudla; }

    lapho usebenzisa amasiginesha, ingashintshwa ngokuthi:

    i-sub foo ($kwesokunxele, $kwesokudla) {buyisela $kwesokunxele + $kwesokudla; }

    Ukushayela u-foo ngezimpikiswano ezingaphezu kwezimbili kuzobangela umhumushi enze iphutha. Uhlu futhi lusekela ukuguquguquka okukhethekile "$", okukuvumela ukuba uzibe ezinye zezimpikiswano, isibonelo, "sub foo ($left, $, $right)" izokuvumela ukuthi ukopishe kuphela izimpikiswano zokuqala nezesithathu ku- eziguquguqukayo, kuyilapho ncamashi agumenti ezintathu.

    I-syntax yesiginesha futhi ikuvumela ukuthi ucacise ama-agumenti ozikhethela futhi usethe amanani azenzakalelayo uma i-agumenti ingekho. Isibonelo, ngokucacisa "sub foo ($left, $right = 0)", i-agumenti yesibili iba ozikhethela yona futhi, uma ingekho, kuphasiswa inani elingu-0. Isisho esingenamthetho singacaciswa emsebenzini womsebenzi, okuhlanganisa ukusebenzisa. ezinye eziguquguqukayo ohlwini noma eziguquguqukayo zomhlaba. Ukucacisa i-hashi noma amalungu afanayo esikhundleni sokuhluka (ngokwesibonelo, "sub foo ($left, @right)") kuzophumela ethubeni lokudlulisa impikiswano eyodwa noma ngaphezulu.

  • Emisebenzini emenyezelwe kusetshenziswa amasiginesha, ukusekelwa komsebenzi ozokwenziwa owengeziwe wamapharamitha kulungu elithi "@_" kuthiwe njengokuhlola futhi kuzophumela kusexwayiso (isixwayiso sikhishwa kuphela uma @_ esetshenziswa emisebenzini emenyezelwe kusetshenziswa i-syntax entsha). Isibonelo, isexwayiso sizokhishwa ngomsebenzi: sebenzisa i-v5.36; sub f ($x, $y = 123) {yithi "Impikiswano yokuqala ithi $_[0]"; }
  • Iqinisiwe futhi iyatholakala lapho kucaciswa "use v5.36" pragma, "isa" infix opharetha ukuze kuhlolwe ukuthi into iyisibonelo sesigaba esishiwo noma isigaba esithathwe kuso. Isibonelo: uma( $obj isa Iphakheji::Igama ) { … }
  • Uma ucacisa i-pragma "sebenzisa i-v5.36", ukucutshungulwa kwezixwayiso kunikwe amandla (imodi "yezixwayiso zokusetshenziswa" iyasebenza).
  • Lapho kucaciswa i-pragma "sebenzisa i-v5.36", ukusekelwa kokuphawula okungaqondile kwezinto ezibizayo ("isici esingaqondile") kuyacishwa - indlela engasasebenzi yokubiza izinto, lapho kusetshenziswa khona isikhala esikhundleni sokuthi "->" ("indlela $ into @param" esikhundleni sokuthi "$object-> $method(@param)"). Isibonelo, esikhundleni sokuthi "my $cgi = new CGI" uzosebenzisa "my $cgi = CGI->new".
  • Lapho kucaciswa i-pragma ye-"use v5.36", usekelo lokulingisa ama-multidimensional arrays kanye nama-Perl-style hashes ("feature multidimensional") lukhutshaziwe, okuvumela okhiye abaningi ukuthi bahunyushelwe kuhlu olumaphakathi (ngokwesibonelo, "$hash{4 , 1}") yaguqulelwa ku-"$hash{join($;, 2, 1)}").
  • I-pragma ye-"use v5.36" ikhubaza usekelo lwendlela yokuhlola yegatsha ("isici sokushintsha") esifana nezitatimende zokushintsha nezimo (u-Perl usebenzisa amagama angukhiye anikeziwe nokuthi nini). Kusukela ku-Perl 5.36, kufanele ucacise ngokucacile 'usebenzisa isici "switch"' ukuze usebenzise lesi sici, futhi ukucacisa "inguqulo yokusetshenziswa" ngeke kusasivumela ngokuzenzakalelayo.
  • Iqinisiwe futhi itholakala ngokuzenzakalelayo usekelo lwezigaba zezinhlamvu ezengeziwe kubakaki abayisikwele ngaphakathi kwezengezo ezivamile. Amandla avumela ukufanisa kusetshenziswa imithetho enwetshiwe yokuphambana, ukungafaki, nokuhlanganisa izinhlamvu eziningi. Isibonelo, '[AZ - W]' izinhlamvu ezisuka ku-A kuye ku-Z ngaphandle kuka-W.
  • Usekelo lwemisebenzi ethi β€œ(?”, β€œ( )”, β€œ{ }” kanye β€œ[ ]” luzinzisiwe kancane futhi lutholakala ngokuzenzakalelayo. Ungasebenzisa izinhlamvu β€œβ€œβ€, β€œβ€œβ€, njll. Isibonelo, "qr" "".
  • Akuvunyelwe ukushayela umsebenzi wokuhlunga ngaphandle kwezimpikiswano, manje okuzoholela ekuphumeni kwephutha. @a = hlunga @empty; # qhubeka @a = hlunga; # izophonsa iphutha @a = hlunga (); # iphutha lizophonswa
  • Kuphakanyiswe ifulegi lomugqa womyalo omusha "-g", okuvumela imodi yokulanda lonke ifayela, kunokuba umugqa ngomugqa. Ifulegi linomphumela ofanayo njengokuthi "-0777".
  • Ukusekelwa kokucaciswa kwe-Unicode kubuyekezwe kunguqulo engu-14.0.
  • Okuhlukile kwephoyinti elintantayo elisheshayo (SIGFPE) ukuphatha okufanayo namanye ama-alamu afana ne-SIGSEGV kunikezwa, okuvumela izibambi ngokwezifiso ukuthi zinamathiselwe kusignali ye-SIGFPE nge-$SIG{FPE}, isibonelo ukukhipha inombolo yomugqa lapho inkinga yenzeke khona.
  • Izinguqulo ezibuyekeziwe zamamojula afakwe ekusabalaliseni okuyisisekelo.
  • Kwengezwe ukulungiselelwa kokusebenza. Ikhono lokugcina okhiye be-hashi abakhulu ngokuyimpumelelo, ngaphandle kokusebenzisa amathebula ochungechunge okwabelwana ngawo, linikezwa. Ukusebenza kokudala amanani amasha we-scalar kuye kwathuthukiswa kakhulu, isibonelo, ikhodi elandelayo manje isishesha ngo-30%: $str = "A" x 64; okwe-(0..1_000_000) {@svs = ukuhlukaniswa //, $str }
  • Ikhodi yomtoliki yaqala ukusebenzisa ezinye zezakhiwo ezichazwe ezingeni le-C99. I-Building Perl manje idinga i-compiler esekela i-C99. Ukusekelwa komhlangano kwehlisiwe kuzinguqulo ezindala ze-MSVC++ (ngaphambi kwe-VC12). Kwengezwe ukwesekwa komhlangano ku-Microsoft Visual Studio 2022 (MSVC++ 14.3).
  • Ukusekelwa kwezinkundla ze-AT&T UWIN, DOS/DJGPP, kanye ne-Novell NetWare kwehlisiwe.

Source: opennet.ru

Engeza amazwana