Loaʻa ka ʻōlelo papahana Perl 5.36.0

Ma hope o hoʻokahi makahiki o ka hoʻomohala ʻana, ua paʻi ʻia ka hoʻokuʻu ʻana o kahi lālā paʻa hou o ka ʻōlelo papahana Perl - 5.36. I ka hoʻomākaukau ʻana i ka hoʻokuʻu hou, ma kahi o 250 tausani mau laina o ke code i hoʻololi ʻia, ua hoʻololi ʻia nā loli i nā faila 2000, a ua komo nā mea hoʻomohala 82 i ka hoʻomohala ʻana.

Ua hoʻokuʻu ʻia ka lālā 5.36 e like me ka papa hana hoʻomohala paʻa i ʻae ʻia i ʻeiwa mau makahiki i hala, ʻo ia hoʻi ka hoʻokuʻu ʻana o nā lālā paʻa hou i hoʻokahi makahiki a me nā hoʻokuʻu hoʻoponopono i kēlā me kēia ʻekolu mahina. Ma kahi o hoʻokahi mahina, ua hoʻolālā ʻia e hoʻokuʻu i ka hoʻokuʻu hoʻoponopono mua o Perl 5.36.1, e hoʻoponopono i nā hewa nui loa i ʻike ʻia i ka wā o ka hoʻokō ʻana o Perl 5.36.0. Me ka hoʻokuʻu ʻana o Perl 5.36, ua hoʻopau ʻia ke kākoʻo no ka lālā 5.32, kahi e hoʻokuʻu ʻia ai nā mea hou e hiki mai ana inā ʻike ʻia nā pilikia palekana koʻikoʻi. Ua hoʻomaka pū ʻia ke kaʻina hana o ka hoʻomohala ʻana i ka lālā hoʻokolohua 5.37, ma ke kumu e hoʻokumu ʻia ai kahi hoʻokuʻu paʻa o Perl 2023 i Mei a i Iune 5.38, ke ʻole kahi hoʻoholo e hoʻololi i ka helu 7.x.

Nā hoʻololi nui:

  • Ua hoʻokūpaʻa ʻia ke kākoʻo no nā pūlima hana a loaʻa i kēia manawa ke kuhikuhi ʻana i ka "hoʻohana i ka v5.36" pragma, e ʻae iā ʻoe e wehewehe i ka papa inoa o nā mea hoʻololi i hoʻohana ʻia i ka hana a hoʻokaʻawale i nā hana o ka nānā ʻana a me ka hāʻawi ʻana i nā waiwai mai kahi ʻano. nā palena komo. No ka laʻana, hoʻohana mua ʻia ke code: sub foo { make "He nui nā manaʻo no ka subroutine" ke ʻole @_ >= 2; make "Kakaikahi nā manaʻo no ka subroutine" ke ʻole @_ <= 2; koʻu ($ hema, $ ʻākau) = @_; hoʻihoʻi $ hema + $ ʻākau; }

    i ka hoʻohana ʻana i nā pūlima, hiki ke pani ʻia e:

    sub foo ($ hema, $ ʻākau) { hoʻi $ hema + $ ʻākau; }

    Inā ʻoe e kāhea iā foo me ʻelua mau manaʻo hoʻopaʻapaʻa, e hoʻolei ka unuhi ʻōlelo i kahi hewa. Kākoʻo ka papa inoa i kahi hoʻololi kūikawā "$", e hiki ai iā ʻoe ke haʻalele i kekahi o nā hoʻopaʻapaʻa, no ka laʻana, "sub foo ($ hema, $, $ ʻākau)" e ʻae iā ʻoe e kope wale i nā manaʻo mua a me ke kolu i loko o nā mea hoʻololi. , ʻoiai ʻekolu pono e hāʻawi ʻia i ka hoʻopaʻapaʻa hana.

    ʻO ka syntax pūlima pū kekahi e ʻae iā ʻoe e kuhikuhi i nā manaʻo koho a kuhikuhi i nā waiwai paʻamau inā nalo kahi hoʻopaʻapaʻa. No ka laʻana, ma ke kuhikuhi ʻana i "sub foo ($ hema, $ ʻākau = 0)" lilo ka pane ʻelua i ke koho a inā ʻaʻole ia, ua hala ka waiwai 0. Ma ka hana hāʻawi, hiki iā ʻoe ke kuhikuhi i nā ʻōlelo arbitrary, me ka hoʻohana ʻana i nā mea hoʻololi ʻē aʻe. mai ka papa inoa a i ʻole nā ​​mea hoʻololi honua. ʻO ka wehewehe ʻana i ka hash a i ʻole ka laʻana ma kahi o kahi hoʻololi (no ka laʻana, "sub foo ($ hema, @ ʻākau)") e ʻae i hoʻokahi a ʻoi aku paha nā manaʻo e hoʻoholo ʻia.

  • Ma nā hana i hōʻike ʻia me ka hoʻohana ʻana i nā pūlima, kākoʻo ʻia ke kākoʻo no ka hoʻokaʻina koho koho mai ka hui "@_" i hōʻike ʻia he hoʻokolohua a e hopena i kahi ʻōlelo aʻo (e hoʻopuka wale ʻia ka ʻōlelo aʻo inā hoʻohana ʻia ka @_ i nā hana i haʻi ʻia me ka syntax hou). No ka laʻana, e hōʻike ʻia kahi ʻōlelo aʻo no ka hana: hoʻohana i ka v5.36; sub f ($x, $y = 123) { e ʻōlelo "ʻO ka pane mua ʻo $_[0]"; }
  • Hoʻopaʻa ʻia a loaʻa i ka wā e kuhikuhi ana i ka "hoʻohana v5.36" pragma, ka mea hoʻohana infix "isa" no ka nānā ʻana inā he mea ia o ka papa i kuhikuhi ʻia a i ʻole ka papa i loaʻa mai ia mea. No ka laʻana: if( $obj isa Package::Name ) { … }
  • Ke hōʻike nei i ka "hoʻohana i ka v5.36" pragma, hoʻohana ʻia ka hana ʻōlelo aʻoaʻo (ua hoʻohana ʻia ke ʻano "hoʻohana i nā ʻōlelo aʻo").
  • Ke kuhikuhi nei i ka "hoʻohana i ka v5.36" pragma, ua pio ke kākoʻo no ka notation indirect no ke kāhea ʻana i nā mea ("feature indirect") - kahi ala kahiko o ke kāhea ʻana i nā mea, kahi i hoʻohana ʻia ai kahi hakahaka ma kahi o "->" ("method $ mea @param” ma kahi o “$object-> $method(@param)"). No ka laʻana, ma kahi o "koʻu $ cgi = CGI hou" pono ʻoe e hoʻohana i "koʻu $ cgi = CGI-> hou".
  • I ka wehewehe ʻana i ka "hoʻohana i ka v5.36" pragma, ua pio ke kākoʻo no ka hoʻohālikelike ʻana i nā arrays multidimensional a me nā hashes ma ke ʻano Perl 4 ("feature multidimensional"), e ʻae ana i ka unuhi ʻana o nā kī he nui i loko o kahi papa waena (no ka laʻana, " Ua hoʻololi ʻia ʻo $hash{1, 2}”) i "$hash{join ($;, 1, 2)}").
  • I ka ho'ākāka 'ana i ka "hoʻohana v5.36" pragma, kākoʻo no ka hoʻokolohua branching mechanical ("kahi hiʻona hoʻololi"), e like me ka hoʻololi a me ka hihia olelo, ua pio (Perl hoʻohana i ka haawi a me ka wa keywords). No ka hoʻohana ʻana i kēia hiʻohiʻona, e hoʻomaka ana me Perl 5.36, pono ʻoe e wehewehe pono i ka 'hoʻohana i ka hiʻohiʻona "hoʻololi", a inā ʻoe e kuhikuhi i ka "hoʻohana i ka mana", ʻaʻole e hoʻohana ʻia.
  • Ua hoʻopaʻa ʻia ke kākoʻo no nā papa ʻano ʻē aʻe ma nā bracket square i loko o nā hōʻike maʻamau a loaʻa ma ke ʻano maʻamau. Hāʻawi ka hiʻohiʻona iā ʻoe e hana i nā pāʻani me ka hoʻohana ʻana i nā lula holomua no ka intersection, exclusion, a me ka hui ʻana o nā pūʻulu o nā huaʻōlelo. No ka laʻana, '[AZ - W]' - nā huaʻōlelo mai A a Z me ka ʻole W.
  • ʻO ke kākoʻo no nā hana "(?", "( )", "{ }" a me "[ ]" i hoʻopaʻa ʻia a loaʻa ma ka paʻamau; hiki iā ʻoe ke hoʻohana i nā hōʻailona "" "", "" "", etc. , "qr"pat "".
  • ʻAʻole pāpā ʻia ke kāhea ʻana i ka hana ʻano me ka ʻole o ka hoʻopaʻapaʻa, a laila e hopena i kahi hewa. @a = hoʻokaʻawale @ʻole; # e hoʻomau @a = sort; # e paʻi ʻia kahi hewa @a = sort(); # e paʻi ʻia kahi hewa
  • Ua kau ʻia kahi hae laina kauoha hou "-g", e hiki ai i ke ʻano o ka hoʻouka ʻana i ka faila holoʻokoʻa holoʻokoʻa, ma mua o ka laina ma ka laina. ʻO ka hana o ka hae e like me ka hōʻailona "-0777".
  • Ua hōʻano hou ʻia ke kākoʻo no ka kikoʻī Unicode i ka mana 14.0.
  • Hāʻawi i ka lawelawe koke ʻana i nā ʻokoʻa wahi lana (SIGFPE) e like me nā mea ʻala ʻē aʻe e like me SIGSEGV, e ʻae iā ʻoe e hoʻopaʻa i kāu mau mea lawelawe ponoʻī no SIGFPE ma o $SIG{FPE}, no ka laʻana ka hoʻopuka ʻana i ka helu laina kahi i loaʻa ai ka pilikia.
  • Hoʻokomo ʻia nā mana hou o nā modula i loko o ka pūʻolo kumu.
  • Hoʻohui ʻia nā loiloi hana. Ua hāʻawi ʻia ka hiki ke mālama i nā kī hash nui me ka ʻole o ka hoʻohana ʻana i nā papa kaula. Ua hoʻomaikaʻi maikaʻi ʻia ka hana o ka hana ʻana i nā waiwai scalar hou, no ka laʻana, e holo ana kēia code i kēia manawa he 30% wikiwiki: $str = "A" x 64; no (0..1_000_000) { @svs = mahele //, $str }
  • Ua hoʻomaka ke code unuhi ʻōlelo e hoʻohana i kekahi o nā kūkulu i wehewehe ʻia ma ka maʻamau C99. ʻO ke kūkulu ʻana iā Perl i kēia manawa ke koi nei i kahi compiler e kākoʻo ana iā C99. Ua hoʻopau ʻia ke kākoʻo no ke kūkulu ʻana i nā mana kahiko o MSVC++ (pre-VC12). Hoʻohui kākoʻo no ke kūkulu ʻana ma Microsoft Visual Studio 2022 (MSVC++ 14.3).
  • Ua hoʻopau ʻia ke kākoʻo no AT&T UWIN, DOS/DJGPP a me Novell NetWare.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka