Bonjour,
en attendant la présentation de Sébastien, voici quelques nouveautés qui me plaisent bien ou sont assez importantes.
Documents "ici-même" (here-docs) indentésLe modificateur "~" permet d'indenter les here-docs dans le code (et, donc, de ne pas perturber l'indentation générale du code par du texte devant se trouver à la marge de gauche).
Par exemple, jusqu'à maintenant, il fallait écrire:
1 2 3 4 5 6 7 8 9 10 11 12
| sub toto {
...
if ($condition) {
...
my $chaine_multiligne = <<'EOC';
texte de la chaîne ligne 1...
texte de la chaîne ligne 2 ...
EOC
...
}
...
} |
Avec la 5.26, on peut écrire:
1 2 3 4 5 6 7 8 9 10 11 12
| sub toto {
...
if ($condition) {
...
my $chaine_multiligne = <<~'EOC';
texte de la chaîne ligne 1 ...
texte de la chaîne ligne 2 ...
EOC
...
}
...
} |
Un nombre d'espace égal à celui se trouvant avant le délimiteur (EOC) sera supprimé au début de chaque ligne de la chaîne de caractères.
Bon, ça n'est sans doute pas révolutionnaire, mais c'est tout de même pratique et nettement plus clair.
Nouveau modificateur d'expressions régulières: /xxLe modificateur /x permet depuis déjà quelques versions de Perl de mettre des espaces (et des commentaires) dans les expressions régulières pour améliorer leur lisibilité. Le nouveau modificateur /xx fait la même chose que /x et permet en outre d'ajouter des espaces ou des tabulations dans les classes de caractères.
Par exemple, jusqu'à présent, une classe de caractères pour reconnaître un nombre hexadécimal pouvait s'écrire comme suit:
On peut maintenant écrire:
Pareil, ce n'est pas révolutionnaire, mais c'est tout de même plus lisible.
Les routines lexicales ne sont plus expérimentalesLes routines lexicales ont été introduites en 5.18, mais leur utilisation émettaient jusqu'à présent un warning relatif à l'utilisation d'une fonctionnalité expérimentale, sauf à la réduire au silence avec un code du genre
1 2 3 4
|
use 5.018;
no warnings "experimental::lexical_subs";
use feature "lexical_subs"; |
Ce n'est plus nécessaire.
Le répertoire courant ne fait plus partie du tableau @INC Jusqu'à présent, le répertoire courant ("."
faisait par défaut partie de la liste des répertoires (tableau @INC) où Perl cherchait un module (sauf si le pragma
taint était activé). Ce pouvait être bien pratique, mais cela pouvait poser des problèmes de sécurité. Désormais, le répertoire courant ne fait plus partie de ce tableau.
Il reste possible de l'ajouter à la main.
Edit: s/#condition/$condition/. Je travaille avec un autre langage de programmation dans lequel les variables commencent par #.
0 |
0 |