Perl 7-k ezin hobeto jarraituko du Perl 5-en garapena atzerako bateragarritasuna hautsi gabe

Perl Proiektuaren Gobernu Kontseiluak Perl 5 adar gehiago garatzeko eta Perl 7 adar bat sortzeko planak zehaztu zituen. Eztabaidetan, Gobernu Kontseiluak onartu zuen ez dela onargarria Perl 5erako idatzitako kodearekin bateragarritasuna hautsi, hausten ez bada behintzat. bateragarritasuna beharrezkoa da ahuleziak konpontzeko. Era berean, Kontseiluak ondorioztatu zuen hizkuntzak eboluzionatu behar duela eta ezaugarri berriak modu intentsiboagoan sustatu behar direla, sortzen ari diren berrikuntzak errazago iristeko eta harrera bultzatuz.

Atzerako bateragarritasuna hausten duten aldaketak Perl 7 adarrean lehenespenez sar daitezen baimentzeko jatorrizko asmoak ez bezala, plan berria Perl 5 adarra Perl 7ra pixkanaka-pixkanaka trantsitzea da, lehendik dagoen kodearekin atzerako bateragarritasuna hautsi gabe. Perl 7.0 bertsioa kontzeptualki ez da hurrengo Perl 5.xx adarrarekin desberdina izango.

Perl 5-en bertsio berrien garapenak lehen bezala jarraituko du - kode zaharrarekin bateraezinak diren adarrean gehitutako ezaugarri berriak, lehen bezala, "erabiltzeko bertsioa" edo "erabiltzeko eginbidearen" pragma esplizituki zehazten bada soilik sartuko dira. kodean. Esate baterako, Perl 5.010-k "esan" gako-hitz berria sartu zuen, baina lehendik zegoen kodeak "esan" izeneko funtzioak erabil zezakeenez, gako-hitz berriaren euskarria "esan" pragma esplizituki zehaztuta soilik gaitu zen.

Lengoaiari gehitutako sintaxi berria, aurreko bertsioetan prozesatutakoan errore bat ekarri zuenean, berehala erabilgarri bihurtzen da pragma berezirik zehaztu beharrik gabe. Adibidez, Perl 5.36-k sintaxi sintaxi bat sartuko du hainbat zerrenda-balio aldi berean prozesatzeko ("foreach my ($key, $value) (%hash) {"), berehala eskuragarri egongo dena, baita kodean ere "erabili" gabe. v5.36" pragma.

Gaur egungo forman, Perl 5.36-k "erabili v5.36" pragma erabiltzen du elkarreragingarritasuna hausten duten 13 ezaugarri gaitzeko ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa' ', 'bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' eta 'unicode_strings'), gaitu "erabili zorrotza" eta "erabili abisuak" moduak lehenespenez eta desgaitu ondarearen zeharkako notaziorako euskarria. objektuei deitzea ("- >"-ren ordez zuriune bat erabiltzen denean) eta Perl 4 estiloko matrize eta hash-dimentsio anitzekoak ("$hash{1, 2}").

Aldaketa nahikoa pilatzen direnean, Perl 5.x-en hurrengo bertsioaren ordez, Perl 7.0-ren bertsio bat sortuko da, egoeraren argazki moduko bat bihurtuko dena, baina Perl 5-rekin guztiz atzerakoigarria izango da. Aldaketak eta ezarpenak gaitzeko bateragarritasuna hausten duten, "erabili v7" pragma esplizituki gehitu beharko duzu kodeari. . Horiek. "Erabili v7" pragma duen kodea "Perl moderno" gisa trata daiteke, zeinetan bateragarritasuna hausten duten hizkuntza-aldaketak eskuragarri dauden, eta - "Perl kontserbadorea" gabe, iraganeko bertsioekin guztiz atzerantz bateragarria izango dena.

Iturria: opennet.ru

Gehitu iruzkin berria