Perl 7 tshaj tawm

Ntawm hnub no lub rooj sib tham virtual ntawm Perl cov neeg tsim tawm tshaj tawm ib txoj haujlwm Perl 7 uas yuav ua tau zoo txuas ntxiv kev txhim kho ntawm Perl 5 ceg yam tsis muaj kev hloov pauv. Perl 7 yuav zoo li tso tawm Perl 5.32.0, tshwj tsis yog rau lwm qhov kev teeb tsa ua ntej uas zoo sib xws nrog kev txhim kho niaj hnub no. Txwv tsis pub, Perl 7 yuav nyob twj ywm tib yam li Perl 5 thiab yuav nyob sib xws nrog cov ntawv thov tsim yav dhau los.

Ib qho kev hloov pauv tseem ceeb ntawm tus lej version yuav ua raws li hom kev sib cais rau kev hloov pauv mus rau tus qauv tshiab rau kev ua haujlwm ntawm Perl lus yam tsis muaj kev ua txhaum cai rov qab sib raug zoo.
Kev tso tawm ntawm Perl 7 xav tias yuav pab nyiam cov neeg tsim khoom tshiab rau Perl thiab pab txhim kho cov txheej txheem ntawm kev ntxiv cov yam ntxwv tshiab rau cov lus thaum tswj kev sib raug zoo nrog cov cai hauv paus ntawm cov haujlwm uas twb muaj lawm. Tus naj npawb 7 tau raug xaiv vim tias Perl 6 tau siv los tsim cov lus uas tam sim no txhim kho nyob rau hauv lub npe cais Raku. Thawj qhov kev tso tawm ntawm Perl 7 yuav tsum yog xyoo tom ntej. Perl 5.32 ceg yuav yog qhov kawg hauv Perl 5 series thiab tau npaj yuav txhawb nqa rau 5 txog 10 xyoo.

Qhov kev hloov pauv tseem ceeb tshaj plaws hauv Perl 7 yog kev suav nrog "nruj", uas txhais tau hais tias nruj xyuas ntawm cov lus tshaj tawm sib txawv, siv cov cim taw qhia thiab cov haujlwm ua haujlwm subroutine. Kev siv "siv nruj" yog daim ntawv zoo thiab siv los ntawm cov neeg tsim khoom feem ntau. Ib yam li ntawd, los ntawm lub neej ntawd lawv npaj ua kom muaj kev ceeb toom ua haujlwm ("siv ceeb toom").

Perl 7 tseem cia siab tias yuav ruaj khov thiab pab tau los ntawm lub neej ntawd qee qhov kev sim uas twb muaj lawm, xws li ua haujlwm kos npe ("siv feature 'kos npe'"), uas tso cai rau, thaum txhais ib txoj haujlwm, los txiav txim siab cov lus sib cav thiab automate xyuas lawv tus lej (koj tuaj yeem sau "sub foo ($ sab laug, $ txoj cai) {" es tsis txhob "sub foo { my($left,$right)) = @_;"). Lawv npaj yuav suav nrog los ntawm kev txhawb nqa rau "isa" tus neeg teb xov tooj rau kev tshuaj xyuas seb cov khoom puas yog ib qho piv txwv ntawm cov chav kawm tshwj xeeb lossis cov chav kawm muab los ntawm nws ("yog tias ($ obj isa Pob:: Lub Npe)", nrog rau kev xa tawm tom qab. kev ua haujlwm (postderef) "$ sref-> $ *" hloov "${ $ sref }", "$aref->@*" es tsis txhob "@{ $ aref }" thiab "$href->%{ ... }" es tsis txhob "%$href{ ... } "

Cov neeg sib tw rau kev xiam oob qhab los ntawm lub neej ntawd hauv Perl 7 yog:

  • Indirect object calling notation ("no feature qw(indirect)") yog ib txoj hauv kev zoo ntawm kev hu cov khoom, siv qhov chaw es tsis txhob "->" ("txoj kev $object @param" es tsis txhob "$object-> $method(@param)"). Piv txwv li, es tsis txhob "kuv $ cgi = tshiab CGI" koj ib txwm siv "kuv $ cgi = CGI-> tshiab".
  • Bare file descriptors uas tsis muaj cov lus tshaj tawm sib txawv ("tsis muaj bareword::filehandle") - siv kev tsim kho xws li "qhib FH, $ file" yuav ua rau muaj qhov yuam kev, koj yuav tsum siv "qhib kuv $fh, $ file". Qhov kev hloov pauv yuav tsis cuam tshuam rau cov qauv ntaub ntawv piav qhia STDIN, STDOUT, STDERR, ARGV, ARGVOUT thiab DATA.
  • Perl 4 style dummy multidimensional arrays thiab hashes ("tsis muaj multidimensional").
    Piv txwv li, kev hais qhia "$hash{1, 2}" yuav ua rau muaj qhov yuam kev; koj yuav tsum siv qhov nruab nrab array, piv txwv li "$hash{join($;, 1, 2)}".

  • Tshaj tawm cov qauv hauv Perl 4 style (koj yuav tsum siv "siv :prototype()").

Hauv cov phiaj xwm nyob deb dua, lawv cia siab tias yuav pab txhawb Unicode los ntawm lub neej ntawd, uas yuav cawm cov neeg tsim tawm los ntawm kev qhia "siv utf8" hauv cov cai. Rau cov qauv thiab cov ntawv sau uas muaj teeb meem nrog cov teeb tsa tshiab, nws muaj peev xwm rov qab mus rau Perl 5 tus cwj pwm los ntawm kev ntxiv kab "siv compat:: perl5" rau tus lej. Cov kev teeb tsa tus kheej kuj tseem yuav raug cawm thiab tuaj yeem hloov pauv tus kheej.

Tau qhov twg los: opennet.ru

Ntxiv ib saib