Perl 7 cuntinuerà senza saldatura u sviluppu di Perl 5 senza rompe a cumpatibilità inversa

U Cunsigliu di Guvernazione di u Prughjettu Perl hà delineatu i piani per u sviluppu di u ramu Perl 5 è a creazione di un ramu Perl 7. Duranti e discussioni, u Cunsigliu di Guvernazione accunsenu chì ùn hè micca accettatu per rompe a cumpatibilità cù u codice digià scrittu per Perl 5, salvu s'ellu ùn rompe. a cumpatibilità hè necessaria per riparà e vulnerabilità. U Cunsigliu hà ancu cunclusu chì a lingua duveria evuluzione è e funzioni novi deve esse prumuvute più intensamente, mentre chì facenu più faciule d'accede à l'innuvazioni emergenti è incuraghjenu l'adopzione.

A cuntrariu di l'intenzioni originali di permette chì i cambiamenti chì rompenu a cumpatibilità retrocede per esse inclusi per difettu in u ramu Perl 7, u novu pianu hè di transizione gradualmente a ramu Perl 5 in Perl 7 senza rompe a cumpatibilità cù u codice esistente. A liberazione di Perl 7.0 ùn serà micca cuncepitualmente sfarente da u prossimu ramu Perl 5.xx.

U sviluppu di novi versioni di Perl 5 cuntinueghja cum'è prima - e funzioni novi aghjunte à u ramu chì sò incompatibili cù u vechju codice seranu, cum'è prima, esse inclusu solu se u pragma "usu di a versione" o "utilizazione di funziunalità" hè esplicitamente specificata. in u codice. Per esempiu, Perl 5.010 hà introduttu una nova keyword "dice", ma postu chì u codice esistente puderia usà funzioni chjamate "dice", u supportu per a nova parola chiave hè stata attivata solu da specificà esplicitamente u pragma "usà a funzione 'dice'".

A nova sintassi aghjunta à a lingua, chì quandu trattata in versioni precedenti hà purtatu à un errore, diventa immediatamente dispunibule senza a necessità di specificà pragmas speciali. Per esempiu, Perl 5.36 introduverà una sintassi simplificata per processà parechji valori di lista in una volta ("foreach my ($key, $value) (%hash) {") chì serà immediatamente dispunibule, ancu in codice senza u "usu". v5.36" pragma.

In a so forma attuale, Perl 5.36 usa u pragma "usà v5.36" per attivà 13 funzioni di interoperabilità ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa'). ', 'bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' è 'unicode_strings'), attivate i modi "usà strettu" è "usà avvisi" per difettu è disattivate u supportu per a notazione indiretta legacy per chjamà l'uggetti (quandu invece di "->" usa un spaziu) è arrays multidimensionali di stile Perl 4 è hash ("$hash{1, 2}").

Quandu s'hè accumulatu abbastanza cambiamenti, invece di a prossima versione di Perl 5.x, serà generata una versione di Perl 7.0, chì diventerà una spezia di snapshot di u statu, ma resterà cumplettamente cumpatibile cù Perl 5. Per attivà cambiamenti è paràmetri. chì rompe a cumpatibilità, avete bisognu di aghjunghje esplicitamente u pragma "usà v7" à u codice. Quelli. codice cù u pragma "usà v7" pò esse trattatu cum'è "Perl mudernu", in u quali cambiamenti di lingua cumpatibulità-ruttura sò dispunibuli, è senza - "Perl cunsirvatori", chì vi ferma cumplettamente backwards compatible cù versioni passati.

Source: opennet.ru

Add a comment