Perl 5.36.0 programming lus muaj

Tom qab ib xyoos ntawm txoj kev loj hlob, kev tso tawm ntawm ib ceg ruaj khov tshiab ntawm Perl programming lus - 5.36 - tau luam tawm. Hauv kev npaj qhov kev tso tawm tshiab, txog 250 txhiab kab ntawm txoj cai tau hloov pauv, cov kev hloov pauv cuam tshuam rau 2000 cov ntaub ntawv, thiab 82 tus neeg tsim khoom tau koom nrog hauv kev txhim kho.

Ceg 5.36 raug tso tawm raws li lub sijhawm txhim kho ruaj khov tau pom zoo cuaj xyoo dhau los, uas txhais tau hais tias kev tso tawm cov ceg ntoo ruaj khov tshiab ib xyoos ib zaug thiab kho qhov tso tawm txhua peb lub hlis. Nyob rau ib hlis, nws tau npaj los tso tawm thawj qhov kev tso tawm ntawm Perl 5.36.1, uas yuav kho qhov yuam kev tseem ceeb tshaj plaws uas tau txheeb xyuas thaum lub sijhawm ua raws Perl 5.36.0. Nrog rau kev tso tawm ntawm Perl 5.36, kev txhawb nqa rau 5.32 ceg tau txiav tawm, uas cov kev hloov tshiab yav tom ntej yuav raug tso tawm tsuas yog tias muaj teeb meem kev nyab xeeb tseem ceeb raug txheeb xyuas. Cov txheej txheem ntawm kev tsim cov ceg sim 5.37 kuj tau pib, raws li qhov kev tso tawm ruaj khov ntawm Perl 2023 yuav raug tsim nyob rau lub Tsib Hlis lossis Lub Rau Hli 5.38, tshwj tsis yog muaj kev txiav txim siab hloov mus rau tus lej 7.x.

Cov kev hloov pauv tseem ceeb:

  • Kev them nyiaj yug rau kev ua haujlwm kos npe tau ruaj khov thiab tam sim no muaj nyob rau thaum qhia txog "siv v5.36" pragma, tso cai rau koj los txheeb xyuas cov npe ntawm cov kev hloov pauv uas siv hauv kev ua haujlwm thiab automate cov haujlwm ntawm kev kuaj xyuas thiab muab cov txiaj ntsig los ntawm ib qho array ntawm tuaj tsis tau. Piv txwv li, yav dhau los siv code: sub foo { tuag "ntau sib cav rau subroutine" tshwj tsis yog @_ >= 2; tuag "Cov lus sib cav ntau dhau rau subroutine" tshwj tsis yog @_ <= 2; my($left,$right) = @_; rov $left + $right; }

    thaum siv kos npe, nws tuaj yeem hloov tau los ntawm:

    sub foo ($left, $right) {rov $left + $right; }

    Yog tias koj hu foo nrog ntau tshaj ob qhov kev sib cav, tus neeg txhais lus yuav cuam tshuam qhov yuam kev. Daim ntawv teev npe kuj tseem txhawb nqa qhov txawv txav tshwj xeeb "$", uas tso cai rau koj tsis quav ntsej qee qhov kev sib cav, piv txwv li, "sub foo ($ sab laug, $, $ txoj cai)" yuav tso cai rau koj luam tawm cov lus sib cav thawj zaug thiab thib peb rau hauv kev sib txawv. , thaum raws nraim peb yuav tsum tau dhau mus rau qhov kev sib cav muaj nuj nqi.

    Tus kos npe syntax kuj tso cai rau koj los qhia cov lus tsis txaus ntseeg thiab qhia meej qhov tseem ceeb yog tias qhov kev sib cav ploj lawm. Piv txwv li, los ntawm kev hais qhia "sub foo ($ sab laug, $ txoj cai = 0)" qhov kev sib cav thib ob yog xaiv tau thiab yog tias nws tsis tuaj, tus nqi 0 tau dhau mus. los ntawm cov npe lossis cov hloov pauv thoob ntiaj teb. Kev qhia txog hash lossis array es tsis txhob muaj qhov sib txawv (piv txwv li, "sub foo ($left, @right)") yuav tso cai rau ib lossis ntau qhov kev sib cav kom dhau.

  • Hauv cov haujlwm tshaj tawm uas siv cov npe kos npe, kev txhawb nqa rau kev xaiv qhov kev xaiv ua haujlwm los ntawm "@_" array tau tshaj tawm kev sim thiab yuav ua rau muaj kev ceeb toom (qhov ceeb toom tsuas yog tawm yog tias @_ siv hauv cov haujlwm tshaj tawm siv cov syntax tshiab). Piv txwv li, ceeb toom yuav tshwm sim rau lub luag haujlwm: siv v5.36; sub f ($x, $y = 123) { hais "Qhov kev sib cav thawj zaug yog $_[0]"; }
  • Stabilized thiab muaj nyob rau thaum qhia txog qhov "siv v5.36" pragma, tus neeg teb xov tooj infix "isa" rau kev tshuaj xyuas seb cov khoom puas yog ib qho piv txwv ntawm cov chav kawm lossis chav kawm tau los ntawm nws. Piv txwv li: if( $obj isa Package::Name ) { … }
  • Thaum qhia txog "siv v5.36" pragma, kev ua haujlwm ceeb toom tau qhib (qhov "siv ceeb toom" hom yog qhib).
  • Thaum qhia txog qhov "siv v5.36" pragma, kev txhawb nqa rau kev tsis ncaj ncees rau kev hu cov khoom ("feature indirect") yog neeg xiam - ib txoj hauv kev dhau los ntawm kev hu cov khoom, nyob rau hauv qhov chaw siv es tsis txhob "->" ("txoj kev $ object @param" hloov "$object-> $method(@param)"). Piv txwv li, es tsis txhob "kuv $ cgi = tshiab CGI" koj yuav tsum siv "kuv $ cgi = CGI-> tshiab".
  • Thaum qhia txog "siv v5.36" pragma, kev txhawb nqa rau emulating multidimensional arrays thiab hashes nyob rau hauv Perl 4 style ("feature multidimensional") yog neeg xiam oob qhab, tso cai rau qhov qhia txog ntau tus yuam sij raug txhais ua ib qho nruab nrab array (piv txwv li, " $hash{1, 2}") tau hloov mus rau "$hash{join($;, 1, 2)}").
  • Thaum hais txog qhov "siv v5.36" pragma, kev txhawb nqa rau kev sim cov txheej txheem ("qhov hloov pauv"), zoo ib yam li cov lus hloov thiab rooj plaub, yog neeg xiam (Perl siv cov lus muab thiab thaum lo lus tseem ceeb). Txhawm rau siv cov yam ntxwv no, pib ntawm Perl 5.36 koj yuav tsum tau qhia meej meej 'siv feature "hloov", thiab thaum koj teev "siv version" nws yuav tsis tau txais kev tso cai ntxiv lawm.
  • Kev them nyiaj yug rau cov chav kawm ua cim ntxiv hauv square brackets hauv cov kab lus tsis tu ncua tau ruaj khov thiab muaj nyob ntawm lub neej ntawd. Qhov tshwj xeeb tso cai rau koj ua qhov sib tw uas siv cov kev cai siab tshaj plaws rau kev sib tshuam, kev cais tawm, thiab kev sib koom ua ke ntawm cov cim. Piv txwv li, '[A-Z - W]' - cim los ntawm A txog Z tsis suav nrog W.
  • Kev them nyiaj yug rau kev ua haujlwm "(?", "( )", "{ }" thiab "[]" yog ib feem ruaj khov thiab muaj nyob rau hauv lub neej ntawd; koj tuaj yeem siv cov cim "" "", "" "", thiab lwm yam. Piv txwv li. , "qr"pat "".
  • Hu rau kev ua haujlwm yam tsis muaj kev sib cav yog txwv tsis pub, uas tam sim no yuav ua rau muaj qhov yuam kev. @a = tsi @empty; # yuav mus ntxiv @a = sort; # qhov yuam kev yuav luam tawm @a = sort(); # qhov yuam kev yuav raug luam tawm
  • Cov kab hais kom ua tshiab chij "-g" tau thov, uas ua rau hom kev thauj khoom tag nrho cov ntaub ntawv tag nrho, tsis yog kab los ntawm kab. Qhov kev txiav txim ntawm tus chij zoo ib yam li qhov qhia "-0777".
  • Kev them nyiaj yug rau Unicode specification tau hloov kho rau version 14.0.
  • Muab kev tuav tam sim ntawm qhov tshwj xeeb ntab ntab (SIGFPE) zoo ib yam li lwm lub tswb xws li SIGSEGV, tso cai rau koj los khi koj tus kheej tuav rau SIGFPE ntawm $SIG{FPE}, piv txwv li tso tawm tus lej xov tooj qhov teeb meem tshwm sim.
  • Hloov tshiab versions ntawm modules suav nrog hauv cov pob yooj yim.
  • Ntxiv kev ua tau zoo optimization. Lub peev xwm khaws cov yuam sij loj loj tau zoo dua yam tsis tau siv cov lus sib koom ua ke tau muab. Kev ua tau zoo ntawm kev tsim cov txiaj ntsig tshiab tau zoo dua qub, piv txwv li cov cai hauv qab no tam sim no khiav 30% sai dua: $ str = "A" x 64; rau (0..1_000_000) { @svs = split //, $str }
  • Tus neeg txhais lus code pib siv qee qhov kev tsim kho uas tau teev tseg hauv C99 tus qauv. Lub tsev Perl tam sim no xav tau lub compiler uas txhawb C99. Kev them nyiaj yug rau lub tsev nyob rau hauv cov laus versions ntawm MSVC ++ (pre-VC12) tau raug txiav lawm. Ntxiv kev txhawb nqa rau kev tsim hauv Microsoft Visual Studio 2022 (MSVC ++ 14.3).
  • Kev them nyiaj yug rau AT&T UWIN, DOS/DJGPP thiab Novell NetWare platforms tau raug txiav lawm.

Tau qhov twg los: opennet.ru

Ntxiv ib saib