Perl 7 on ametatud

Täna toimuval virtuaalsel Perl arendajate konverentsil on ametlikult välja kuulutatud Perl 7 projekt, mis jätkab Perl 5 haru arengut ilma radikaalsete muutusteta. Perl 7 sarnaneb väljaandele Perl 5.32.0, välja arvatud erinevad vaike seadistused, mis vastavad paremini tänapäeva arendustavadele. Muul osas jääb Perl 7 samaks nagu Perl 5 ning säilitab ühilduvuse varasemate rakendustega.

Registreerimise märkimisväärne muutus signaalselt üleminekut uuele mudelile, mis laiendab Perl'i funktsionaalsust ilma tagurpidi ühilduvusi rikkumata.
Eeldatakse, et Perl 7 loomine aitab meelitada uusi arendajaid Perl'i kasutama ja käivitada oluliste uute omaduste lisamise protsessi, säilitades samal ajal ühilduvuse olemasolevate projektide koodibaasiga. Number 7 on valitud, kuna Perl 6 oli kasutatud keele arendamiseks, mis nüüd arendatakse käib eraldi nime all Raku. Perl 7 esimene väljaanne oodatakse järgmisel aastal. Perl 5.32 haru jääb viimaseks Perl 5 seerias ja selle arendamist plaanitakse toetada 5-10 aastat.

Perl 7 peamine muudatus on vaikimisi režiimi „strict“, mis tähendab, et muutuja deklareerimise, sümboolses osutite kasutamise ja allfunktsioonide määramise kontroll on rangem. „use strict” kasutamine on hea tava ja enamiku arendajate seas levinud. Samuti plaanitakse vaikimisi lisada hoiatuste käsitlemine (use warnings«).

) Perl 7-s soovitakse stabiliseerida ja vaikimisi lisada mõned juba olemasolevad eksperimentaalsed võimalused, nagu funktsioonide signeerimine („use feature ‘signatures'“), mis võimaldab funktsiooni määramisel määrata sissetulevad argumendid ja automatiseerida nende arvu kontrolli (saab kirjutada „sub foo ($left, $right) {“ asemel „sub foo { my($left, $right) = @_;“). Samuti plaanitakse vaikimisi lisada „isa“ operaatori tugi, et kontrollida, kas objekt on määratud klassi või temast kantud klassi eksemplar („if( $obj isa Package::Name )“, ning postderef operatsioonid „$sref->$*“ asemel „${ $sref }“, „$aref->@*“ asemel „@{ $aref }“ ja „$href->%{ … }“ asemel „%$href{ … }“.

Perl 7 vaikimisi välja lülitamiste kandidaadid on:

  • Косвенная нотация вызова объектов («no feature qw(indirect)«) — устаревший способ вызова объектов, при котором вместо «->» используется пробел («method $object @param» вместо «$object->$method(@param)»). Например, вместо «my $cgi = new CGI» нужно будет всегда использовать «my $cgi = CGI->new».
  • Голые файловые дескрипторы без объявления переменных («no bareword::filehandle«) — использование конструкций вида «open FH, $file» будет приводить к ошибке, нужно использовать «open my $fh, $file». Изменение не затронет стандартные файловые дескрипторы STDIN, STDOUT, STDERR, ARGV, ARGVOUT и DATA.
  • Фиктивные многомерные массивы и хэши в стиле Perl 4 («no multidimensional«).
    Например, указание «$hash{1, 2}» будет приводить к ошибке, нужно использовать промежуточный массив, например «$hash{join($;, 1, 2)}».
  • Объявление прототипов в стиле Perl 4 (нужно использовать «use :prototype()»).

Kaugemates plaanides on vaikimisi plaanitud Unicode'i toe lisamine, mis vabastab arendajad vajadusest koodis kirjeldada "use utf8". Moodulite ja skriptide jaoks, kus uute vaikeseadete tõttu tekivad probleemid, on võimalik taastada Perl 5 käitumine, lisades koodi rea "use compat::perl5". Erilised seaded jäävad samuti alles ja neid saab muuta eraldi.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster