condensé de perldelta
(115 Ko)
seulement les changements les plus marquants
plannification 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
5.14.0 le 14 mai 2011
5.14.1 le 17 juin 2011
5.14.2 le 26 septembre 2011
5.16.0 le 12 mai 2012
5.12 n'est plus officiellement supportée
5.16.1 le 8 août 2012
5.16.2 le 1er novembre 2012
5.18.0 le 18 mai 2013
5.14 n'est plus officiellement supportée
5.18.1 le 12 août 2013
5.18.2 le 6 janvier 2014
5.20.0 le 16 mai 2014
5.16 n'est plus officiellement supportée
fonctionnalité expérimentale
use experimental "signatures";
perlsub
, section Signatures
sub kennify ($text) { $text =~ s/\w/(qw[f h m])[rand 4]/egmrs } say kennify("hello everybody!"); # "hfmff mfmhffmm!"
sub plus ($left, $right = 0) { $left + $right } say plus(2, 3); # 5 say plus(4); # 4 say plus(2, 3, 4); # Too many arguments for subroutine
%array[ ... ]
et %hash{ ... }
renvoient une liste de
paires clé-valeur
use Data::Dump "dd"; my %mane6 = ( kindness => "Fluttershy", honesty => "Applejack", laughter => "Pinkie Pie", generosity => "Rarity", loyalty => "Rainbow Dash", magic => "Twilight Sparkle", );
my %pair = %mane6{qw< magic kindness >}; dd \%pair; # { kindness => "Fluttershy", magic => "Twilight Sparkle" }
use Data::Dump "dd"; my @mane6 = ( "Applejack", "Fluttershy", "Pinkie Pie", "Rarity", "Rainbow Dash", "Twilight Sparkle", );
my %pair = %mane6[1, 4]; dd \%pair; # { 1 => "Fluttershy", 4 => "Rainbow Dash" }
my %pair = %mane6["foo", 4]; dd \%pair; # { 4 => "Rainbow Dash", foo => "Applejack" }
fonctionnalité expérimentale
use experimental "postderef";
$scalarref->$*; # pareil que ${ $scalarref } $arrayref->@*; # pareil que @{ $arrayref } $hashref->%*; # pareil que %{ $hashref } $coderef->&*; # pareil que &{ $coderef }
$arrayref->@[ ... ]; # pareil que @$arrayref[ ... ] $hashref->@{ ... }; # pareil que @$hashref{ ... }
$arrayref->%[ ... ]; # pareil que %$arrayref[ ... ] $hashref->%{ ... }; # pareil que %$hashref{ ... }
implémentation interne de drand48()
auparavant, utilisation de la fonction native
meilleur support 64-bit
use locale
supporte les locales en UTF-8
use locale
supporte les système sans locales
meilleure gestion des erreurs de locales à l'initialisation
experimental
activation / désactivation de fonctionnalités expérimentales
pur Perl, disponible sur le CPAN
IO::Socket::IP
remplacement de IO::Socket::INET
avec support IPv4 et IPv6
do FUNCTION(LIST)
maintenant une erreur
{
litéral après \b
ou \B
maintenant une erreur
le caractère après \c
doit être imprimable, et ne doit pas être {
la virgule décimale ne fuit plus en dehors de la portée d'un use locale
le mécanisme de tainting
se produit dans plus de cas, conformément
à la documentation
correctifs :
[#]
incorrectement inteprété comme un commentaire
/[#$a]/x
ou /[#]$a/x
(5.1)
/[#](?{})/x
(5.18)
((?[...])
autorise l'interpolation de motifs ((?[...])
précompilés
/$qr/p
était cassé en 5.18, /p
était ignoré
optimisations :
analyse du motif pour déterminer la longueur minimale d'une chaîne qui doit correspondre
les expressions avec l'ancre ^
sont plus rapides
les variables de capture ($1
, $2
, ..., $`
, $&
, $'
,
${^PREMATCH}
, ${^MATCH}
et ${^POSTMATCH}
utilisent moins de
mémoire
Unicode 6.3
meilleur support BiDi
ajout de 1002 idéographes de compatibilité CJK
\p{}
et \P{}
seulement pour les codes-points Unicode
(U+0000
à U+10FFFF
)
\p{Unicode}
comme alias de \p{Any}
([\x0-\x10FFFF]
)
extension \p{All}
pour tous les codes-points (y compris
au delà de U+10FFFF
)
nouveau mécanisme de copy-on-write (5.18) maintenant activé par défaut
première itération sur un grand hash plus rapide
$array[-1]
plus rapide
recherche de clé de hash plus rapide
création de certains types de listes plus rapide
syntaxe
utilisation des threads officiellement découragée
classe de caractères \C
(octet brut)
caractères de contrôle litéraux dans les noms de variables ($^I
,
$^T
, etc)
fonctions de caractères de POSIX (isalpha
, isdigit
, etc)
modules
CGI
et associés, Module::Build
et associés
utilitaires
a2p
, s2p
, find2perl
nouvelles plates-formes
Android (ARM, MIPS, x86)
Bitrig (OpenBSD), FreeMiNT, Synology (ARM, PPC)
arrêt de support
AT&T 3b1 (Unix PC), DG/UX, Ardent Titan OS
futur arrêt de support
EBCDIC
NeXT, AmigaOS, DJGPP, NetWare, OS/2, Plan 9