I. Les nouveautés de Perl 5.22▲
Présentation
- condensé de perldelta (66 Ko)
- seulement les changements les plus marquants
Cycles de publication
-
planification des versions
- une version majeure par an (Q2)
- des versions mineures tous les 2-3 mois
-
cycle de dépréciation court
- avertissement pendant une ou deux versions majeures
- suppression effective à la version majeure suivante
- modules retirés envoyés sur le CPAN
Précédentes versions majeures
- 5.12.0 le 12 avril 2010
- 5.14.0 le 14 mai 2011
- 5.16.0 le 12 mai 2012
- 5.18.0 le 18 mai 2013
Perl 5.20
-
5.20.0 le 16 mai 2014
- 5.16 n'est plus officiellement supportée
-
principales nouveautés :
- signatures de fonctions ;
- déréférence postfixée ;
- tranche de hash.
Perl 5.22
-
5.22.0 le 1er juin 2015
- 5.18 n'est plus officiellement supportée
-
principales nouveautés :
- opérateurs : bitwise ; double diamant <<>> ;
- regexps : use re "strict" ; nouvelles frontières de mot \b ; option de non-capture /n ;
- fonctionnalités : refaliasing ; :const.
Perl 5.24
-
5.24.0 le 9 mai 2016
- 5.20 n'est plus officiellement supportée
- 5.24.1 probablement vers septembre 2016
- 5.24.2 probablement vers mars 2017
Résumé
- peu de nouveautés, des retraits de certaines choses
- version de stabilisation
- et bien sûr des correctifs et des optimisations
Confirmation - déréférencement postfixé
- n'est plus une fonctionnalité expérimentale
- use feature "postderef" maintenant sans effet
- use v5.24 active postderef_qq
-
$r
=
[1
, [2
,3
],4
];$r-
>
[1
]->
@
*
;# équivalent à @{ $r->[1] }
Regexps
- nouvelles frontières de mot \b (UAX #29: Unicode Text Segmentation)
- \b{gcb}, \b{wb} et \b{sb} introduits avec 5.22
- \b{lb} — Line Break, aussi disponible avec Unicode::LineBreak
- \b{wb} — plus proche de ce qui est attendu en Perl
-
erreurs à l'exécution maintenant détectées à la compilation
- propriétés Unicode \p{} et \P{}
- \N{} maintenant une erreur sous use re "strict"
- qr/(?[ ])/ fonctionne maintenant avec les locales UTF-8
Unicode
- Unicode 8.0.0
-
ajout de 7 716 caractères, dont 6 nouveaux systèmes d'écriture
- nombreuses syllabes minuscules Cherokee, appariées avec les caractères existants
- 5 771 idéographes CJK unifiés
- nouveaux symboles emoji pour supporter la diversité dans la couleur de peau
- caractères pour des langues africaines (Ik en Ouganda, Kulango en Côte d'Ivoire)
Nouveautés diverses
- décalages binaires (<< et >>) ne dépendent plus de l'implémentation C du système
- printf et sprintf supportent des arguments de précision réagençables
sprintf
'|%.*2$d|'
,2
,3
# "|002|"
- plus de champs passés au callback de sigaction configuré avec SA_SIGINFO
- redirection de shebang vers Perl 6
Changements incompatibles
- autoderef a été retiré
push
$arrayref
,@values
; -
my $_ a été retiré
- introduit dans 5.10 (2007), rendu expérimental dans 5.18 (2013)
- caractères ASCII non graphiques interdits dans les noms de variables
- déclarations imbriquées interdites
my ($x
, my($y
)); our (my$x
); - \C retirée
- chdir('') ou chdir(undef) maintenant sans effet
maddingue@Landroval:/tmp $ perl5.22.0 -E 'chdir(""); say `pwd`'
Use of chdir('') or chdir(undef) as chdir() is deprecated at -e line 1.
/Users/maddingue
maddingue@Landroval:/tmp $ perl5.24.0 -E 'chdir(""); say `pwd`'
/tmp
Changements internes
- implémentation de la pile de contexte et son API interne
- pas de gros changements sur l'API publique
- mais assez pour casser certains modules CPAN
Algorithm::Permute, Coro, Data::Alias, RPerl, Scope::Upper, TryCatch, mod_perl
Dépréciations
- utilisation de code points au dessus du IV_MAX de la plate-forme
- opérations de bits sur les chaînes avec des code points au dessus de 0xFF
- sysread(), syswrite(), recv() et send() sur des descripteurs en mode :utf8
Optimisations
- entrée et sortie de portée lexicale plus rapides
- opérations de casse (ucfirst(), qr//i) plus rapides sur les langages sans casse
- /string/ potentiellement beaucoup plus rapide (dépend de memchr())
- addition, soustraction et multiplication plus rapides
- pré-/post- incrément / décrément plus rapides
Support de plates-formes
-
plates-formes à nouveau fonctionnelles
- AmigaOS
-
nombreux correctifs
- Win32, VMS, EBCDIC