Inihayag ng Perl 7

Sa virtual na kumperensya ngayon ng mga developer ng wikang Perl inihayag isang proyekto ng Perl 7 na maayos na magpapatuloy sa pagbuo ng sangay ng Perl 5 nang hindi gumagawa ng mga radikal na pagbabago. Ang Perl 7 ay magiging katulad na paglabas Perl 5.32.0, maliban sa iba pang mga default na setting na mas pare-pareho sa mga modernong kasanayan sa pag-unlad. Kung hindi, ang Perl 7 ay mananatiling pareho sa Perl 5 at mananatiling tugma sa mga naunang binuo na application.

Ang isang makabuluhang pagbabago sa numero ng bersyon ay magsisilbing isang uri ng separator para sa paglipat sa isang bagong modelo para sa pagpapataas ng functionality ng Perl na wika nang walang kapansin-pansing paglabag sa backward compatibility.
Ang paglabas ng Perl 7 ay inaasahang makakatulong sa pag-akit ng mga bagong developer sa Perl at tumulong sa pag-streamline ng proseso ng pagdaragdag ng mga makabuluhang bagong feature sa wika habang pinapanatili ang pagiging tugma sa code base ng mga kasalukuyang proyekto. Ang numero 7 ay napili dahil ang Perl 6 ay ginamit upang mapaunlad ang wika na ngayon ay umuunlad sa ilalim ng hiwalay na pangalang Raku. Ang unang paglabas ng Perl 7 ay inaasahan sa susunod na taon. Ang sangay ng Perl 5.32 ang magiging huli sa serye ng Perl 5 at pinaplanong suportahan sa loob ng 5 hanggang 10 taon.

Ang pinaka-kapansin-pansing pagbabago sa Perl 7 ay ang pagsasama ng "mahigpit“, na nagpapahiwatig ng mahigpit na pagsusuri sa mga variable na deklarasyon, paggamit ng mga simbolikong payo at mga subroutine na takdang-aralin. Ang paggamit ng "gamitin ang mahigpit" ay magandang anyo at ginagamit ng karamihan sa mga developer. Katulad nito, bilang default, pinaplano nilang paganahin ang pagproseso ng babala (“gumamit ng mga babala").

Inaasahan din ng Perl 7 na patatagin at paganahin bilang default ang ilang umiiral nang mga pang-eksperimentong tampok, gaya ng mga pirma ng function (“gumamit ng feature na 'signatures'"), na nagbibigay-daan, kapag tinutukoy ang isang function, upang matukoy ang mga papasok na argumento at i-automate ang pagsuri sa kanilang numero (maaari mong isulat ang “sub foo ($left, $right) {” sa halip na “sub foo { my($kaliwa, $kanan) ) = @_;"). Plano nilang isama bilang default na suporta para sa operator ng "isa" para sa pagsuri kung ang isang object ay isang instance ng isang tinukoy na klase o isang klase na nagmula rito (“if( $obj isa Package::Name)”, pati na rin ang postfix dereferencing operations (postderef) “$ sref->$*" sa halip na "${ $sref }", "$aref->@*" sa halip na "@{ $aref }" at "$href->%{ ... }" sa halip na "%$href{ ... } "

Ang mga contenders para sa pagiging hindi pinagana bilang default sa Perl 7 ay:

  • Hindi direktang object calling notation ("walang feature qw(indirect)") ay isang legacy na paraan ng pagtawag sa mga bagay, gamit ang isang puwang sa halip na "->" ("paraan $object @param" sa halip na "$object->$method(@param)"). Halimbawa, sa halip na "aking $cgi = bagong CGI" ay palagi mong gagamitin ang "aking $cgi = CGI->bago".
  • Mga hubad na deskriptor ng file na walang variable na deklarasyon ("walang bareword::filehandle") - ang paggamit ng mga construction tulad ng “open FH, $file” ay hahantong sa isang error, kailangan mong gamitin ang “open my $fh, $file”. Ang pagbabago ay hindi makakaapekto sa mga karaniwang file descriptor STDIN, STDOUT, STDERR, ARGV, ARGVOUT at DATA.
  • Perl 4 style dummy multidimensional arrays at hash ("walang multidimensional").
    Halimbawa, ang pagtukoy sa "$hash{1, 2}" ay hahantong sa isang error; kailangan mong gumamit ng intermediate array, halimbawa "$hash{join($;, 1, 2)}".

  • Pagdedeklara ng mga prototype sa istilong Perl 4 (kailangan mong gumamit ng "use :prototype()").

Sa mas malalayong plano, inaasahan nilang paganahin ang suporta sa Unicode bilang default, na magliligtas sa mga developer mula sa pagtukoy ng "gamitin ang utf8" sa code. Para sa mga module at script na may mga problema sa mga bagong default na setting, posibleng bumalik sa gawi ng Perl 5 sa pamamagitan ng pagdaragdag ng linyang "use compat::perl5" sa code. Mase-save din ang mga indibidwal na setting at maaaring baguhin nang paisa-isa.

Pinagmulan: opennet.ru

Magdagdag ng komento