Perl 7 adalengeza

Pamsonkhano wamasiku ano wa opanga zinenero za Perl adalengeza pulojekiti ya Perl 7 yomwe ipitilize bwino kukula kwa nthambi ya Perl 5 popanda kusintha kwakukulu. Perl 7 imasulidwa chimodzimodzi Perl 5.32.0, kupatula zoikidwiratu zina zomwe zimagwirizana kwambiri ndi zochitika zamakono zamakono. Kupanda kutero, Perl 7 ikhalabe yofanana ndi Perl 5 ndipo ikhala yogwirizana ndi mapulogalamu omwe adapangidwa kale.

Kusintha kwakukulu kwa nambala yamtunduwu kudzakhala ngati cholekanitsa pakusintha kupita ku mtundu watsopano wowonjezera magwiridwe antchito a chilankhulo cha Perl popanda kuphwanya kowonekera kwa mayendedwe am'mbuyo.
Kutulutsidwa kwa Perl 7 kukuyembekezeka kuthandizira kukopa opanga atsopano ku Perl ndikuthandizira kukonza njira yowonjezerera zinthu zatsopano m'chinenerocho ndikusunga kugwirizana ndi maziko a mapulojekiti omwe alipo. Nambala 7 idasankhidwa chifukwa Perl 6 idagwiritsidwa ntchito kupanga chilankhulo chomwe chili pano ikukula pansi pa dzina losiyana Raku. Kutulutsidwa koyamba kwa Perl 7 kukuyembekezeka chaka chamawa. Nthambi ya Perl 5.32 ikhala yomaliza pamndandanda wa Perl 5 ndipo ikukonzekera kuthandizidwa kwa zaka 5 mpaka 10.

Kusintha kodziwika kwambiri mu Perl 7 ndikuphatikiza "zovuta", zomwe zikutanthauza kuwunika mosamalitsa zolengeza, kugwiritsa ntchito zolozera zophiphiritsa ndi magawo ang'onoang'ono. Kugwiritsa ntchito "kugwiritsa ntchito mwamphamvu" ndikwabwino ndipo kumagwiritsidwa ntchito ndi opanga ambiri. Mofananamo, mwachisawawa akukonzekera kuti athetse machenjezo ("gwiritsani ntchito machenjezo").

Perl 7 ikuyembekezanso kukhazikika ndikuyambitsa mwachisawawa zina zomwe zidakhalapo kale, monga ntchito siginecha ("gwiritsani ntchito 'siginecha'"), zomwe zimalola, pofotokoza ntchito, kudziwa zotsutsana zomwe zikubwera ndikuwonera nambala yawo (mutha kulemba "sub foo ($left, $ right) {" m'malo mwa "sub foo { wanga($kumanzere, $kumanja) = @_;"). Akukonzekera kuphatikiza mwachisawawa kuthandizira kwa "isa" wogwiritsa ntchito kuti awone ngati chinthu ndi chitsanzo cha gulu linalake kapena kalasi yochokeramo ("ngati( $obj isa Package::Name)", komanso postfix dereference. ntchito (postderef) β€œ$ sref->$*” m’malo mwa "${$sref }", "$aref->@*" m'malo mwa "@{$aref }" ndi "$href->%{ ... }" m'malo mwa "%$href{... } "

Otsutsana kuti akhale olumala mwachisawawa mu Perl 7 ndi:

  • Notition yoyimba chinthu chosalunjika ("palibe mawonekedwe qw (osalunjika)") ndi njira yakale yoyitanira zinthu, kugwiritsa ntchito danga m'malo mwa "->" ("njira $object @param" m'malo mwa "$object->$method(@param)"). Mwachitsanzo, m'malo mwa "my $cgi = CGI yatsopano" nthawi zonse mumagwiritsa ntchito "my $cgi = CGI-> new".
  • Mafotokozedwe a mafayilo opanda zidziwitso zosinthika ("palibe mawu ::filehandle") - kugwiritsa ntchito zomanga monga "otsegula FH, $fayilo" zidzabweretsa cholakwika, muyenera kugwiritsa ntchito "kutsegula $fh yanga, $fayilo". Kusintha sikungakhudze mafayilo ofotokozera STDIN, STDOUT, STDERR, ARGV, ARGVOUT ndi DATA.
  • Perl 4 style dummy multidimensional arrays ndi ma hashes ("palibe multidimensional").
    Mwachitsanzo, kutchula β€œ$hash{1, 2}” kubweretsa vuto; muyenera kugwiritsa ntchito gulu lapakati, mwachitsanzo β€œ$hash{join($;, 1, 2)}”.

  • Kulengeza ma prototypes mumayendedwe a Perl 4 (muyenera kugwiritsa ntchito "ntchito :prototype()").

M'mapulani akutali, amayembekeza kuthandizira Unicode kuthandizira mwachisawawa, zomwe zimapulumutsa opanga kuti asatchule "gwiritsani ntchito utf8" mu code. Kwa ma module ndi zolemba zomwe zili ndi vuto ndi zosintha zatsopano, ndizotheka kubwereranso ku khalidwe la Perl 5 powonjezera mzere "gwiritsani ntchito compat::perl5" ku code. Zokonda zapayekha zidzasungidwanso ndipo zitha kusinthidwa payekhapayekha.

Source: opennet.ru

Kuwonjezera ndemanga