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.12.0 le 12 avril 2010
5.12.1 le 16 mai 2010
5.12.2 le 6 septembre 2010
5.12.3 le 21 janvier 2011
5.12.4 le 20 juin 2011
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.x n'est plus officiellement supportée
current_sub
mot-clé __SUB__
référence à la sous-routine courante
unicode_eval
eval()
evalue toujours la chaîne en Unicode
evalbytes
evalbytes()
évalue la chaîne en octets
substr()
peut renvoyer une lvalue
my $string = "The quick brown fox jumps over the lazy dog"; my $mask1 = \substr($string, 4, 5); my $mask2 = \substr($string, -8); print "$$mask1 | $$mask2\n"; # affiche "quick | lazy dog"
$string = "Le vif zéphyr souffle sur ces kumquats disgracieux"; print "$$mask1 | $$mask2\n"; # affiche "if zé | gracieux"
tied
renvoie maintenant le scalaire de l'objet auquel la variable est liée
Scalar::Util::weaken(tied $tied_variable);
Unicode 6.1.0
hormis U+1F514 (BELL), en conflit avec U+0007 (BELL, ALERT, BEL) ; ne sera nommé ainsi qu'en 5.18
quelques changements de noms et de propriétés
Perl reconnait anciens et nouveaux noms
charnames
autochargé au premier \N{...}
\N{...}
supporte la correspondance relâchée (loose match)
plein support Unicode pour tous les noms de symboles
support de repli de casse (casefolding)
permet de comparer deux chaînes sans tenir compte de la casse
fonction fc()
(foldcase), séquence \F
lc($str1) eq lc($str2) # incorrect uc($str1) eq uc($str2) # incorrect
$str1 =~ /\Q$str2/i # correct, mais pas léger
fc($str1) eq fc($str2) # correct
arybase
- implémentation de $[
plus de mots-clés maintenant disponibles dans CORE::
les valeurs de $$
, $<
, $>
, $(
, $)
ne sont
plus mises en cache
sondes DTrace pour les changements de phase de l'interpréteur
prototypes \$
et \[$]
acceptent tout type de lvalue
prototype _
autorisé avant @
ou %
use VERSION
plus rapide, car ne charge pas feature.pm
les méthodes DESTROY
vides ne sont pas appelées (5.12)
les méthodes DESTROY
commençant par return
ne sont pas appelées
assignation à substr()
en contexte vide deux fois plus rapide
glob()
plus rapide
amélioration de la recherche des propriétés Unicode
opérateurs de court-circuit (&&
, ||
, //
) chaînés plus rapides
grâce à un parcours de l'optree réduit
échange de $<
et $>
support de sfio
modules
CPANPLUS
, Filter::Simple
, PerlIO::mmap
Pod::LaTeX
, Pod::Parser
, SelfLoader
Text::Soundex
, Thread.pm
plates-formes
BeOS, djgpp, dgux, EPOC
MPE/iX, Rhapsody, UTS, VM/ESA
compilateurs
Borland