Perl 7 continuera le développement de Perl 5 sans compromettre la rétrocompatibilité.

Le conseil d'administration du projet Perl a rĂ©sumĂ© ses plans pour le dĂ©veloppement futur de la branche Perl 5 et la crĂ©ation de la branche Perl 7. Au cours des discussions, le conseil a convenu qu'il n'Ă©tait pas acceptable de rompre la compatibilitĂ© avec le code dĂ©jĂ  Ă©crit pour Perl 5, sauf dans les cas oĂč cette rupture est nĂ©cessaire pour corriger des vulnĂ©rabilitĂ©s. Le conseil a Ă©galement conclu que le langage doit Ă©voluer et que de nouvelles fonctionnalitĂ©s doivent ĂȘtre davantage promues, tout en simplifiant l'accĂšs aux innovations Ă©mergentes et en encourageant leur adoption.

Contrairement aux intentions initiales, permettant d'inclure par défaut dans la branche Perl 7 des modifications rompant la compatibilité, le nouveau plan prévoit une transition progressive de la branche Perl 5 vers Perl 7 sans violer la compatibilité avec le code existant. La sortie de Perl 7.0 ne sera conceptuellement pas différente d'une nouvelle branche Perl 5.xx.

Le dĂ©veloppement de nouvelles versions de Perl 5 se poursuivra comme auparavant : les nouvelles fonctionnalitĂ©s ajoutĂ©es Ă  la branche, non compatibles avec l'ancien code, seront toujours incluses uniquement si explicitement indiquĂ© dans le code par les pragmas «use version» ou «use feature fonctionnalité». Par exemple, dans la version Perl 5.010, un nouveau mot-clĂ© «say» a Ă©tĂ© introduit, mais comme des fonctions portant le mĂȘme nom pouvaient ĂȘtre utilisĂ©es dans le code existant, la prise en charge de ce nouveau mot-clĂ© n'Ă©tait activĂ©e que par une indication explicite du pragma «use feature ‘say'».

La nouvelle syntaxe ajoutĂ©e au langage, qui entraĂźnait une erreur dans les versions prĂ©cĂ©dentes, est dĂ©sormais disponible immĂ©diatement sans nĂ©cessitĂ© d'indiquer des pragmas spĂ©ciaux. Par exemple, dans Perl 5.36, une syntaxe simplifiĂ©e pour le traitement simultanĂ© de plusieurs valeurs d'une liste («foreach my ($key, $value) (%hash) {») sera disponible tout de suite, mĂȘme dans un code sans le pragma «use v5.36».

Dans sa forme actuelle, dans Perl 5.36, lors de l'utilisation du pragma «use v5.36», 13 fonctionnalitĂ©s rompant la compatibilitĂ© (‘say’, ‘state’, ‘current_sub’, ‘fc’, ‘lexical_subs’, ‘signatures’, ‘isa’, ‘bareword_filehandles’, ‘bitwise’, ‘evalbytes’, ‘postderef_qq’, ‘unicode_eval’ et ‘unicode_strings’) sont activĂ©es par dĂ©faut, les modes «use strict» et «use warnings» sont inclus, et le support de la notation d'appel d'objet obsolĂšte est dĂ©sactivĂ© (oĂč un espace est utilisĂ© Ă  la place de «->») ainsi que des tableaux et des hachages multidimensionnels en style Perl 4 («$hash{1, 2}»).

Lorsque les changements s'accumuleront suffisamment, une version Perl 7.0 sera créée au lieu d'une autre version de Perl 5.x, qui reprĂ©sentera un instantanĂ© de l'Ă©tat actuel, tout en restant complĂštement rĂ©trocompatible avec Perl 5. Pour inclure des modifications et des configurations non compatibles, il sera nĂ©cessaire d'ajouter explicitement dans le code la pragma « use v7 ». Autrement dit, le code avec la pragma « use v7 » peut ĂȘtre considĂ©rĂ© comme « Perl moderne », dans lequel des modifications du langage non compatibles sont disponibles, tandis que sans cela, c'est « Perl conservateur », qui restera entiĂšrement rĂ©trocompatible avec les versions prĂ©cĂ©dentes.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster