Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  Perl 5.36.0 est sorti

 -  Septembre 2022 - 

La toute dernière version de Perl, la 5.36.0, est sortie le 28 mai 2022. Vous la retrouverez bientôt dans votre distribution préférée.

Perl est un langage généraliste créé en 1987 par Larry Wall. Il est distribué sous une double licence : Artistic Licence et GPL v1+. La plupart des modules du CPAN, dépôt de référence pour des modules tiers, suivent également ce même traitement. Perl est inclus dans la quasi-totalité des distributions GNU/Linux.

Tout d’abord un petit lien vers la précédente dépêche sur la sortie de Perl 5.32.0 ainsi que vers la dépêche annonçant la sortie de Perl 5.30.0.

Sommaire

Améliorations de base

Comme toujours, use v5.36; active les fonctionnalités pour cette version de Perl. Le bundle 5.36 permet la fonctionnalité « signatures ». Introduite dans la version 5.20.0 de Perl et modifiée plusieurs fois depuis, la fonctionnalité de « signatures » de sous-programmes n’est désormais plus considérée comme expérimentale. Elle est considérée comme une fonctionnalité de langage stable et n’affiche plus d’avertissement.

use v5.36;

sub add ($x, $y) {
  return $x + $y;
}

Malgré cela, certains éléments des sous-programmes signés restent expérimentaux ; voir ci-dessous.

Le bundle 5.36 active aussi la fonctionnalité isa. Introduite dans la version 5.32.0 de Perl, cet opérateur est resté inchangé depuis. L’opérateur est désormais considéré comme une fonctionnalité de langage stable. Pour plus de détails, vous pouvez lire la documentation de l’opérateur.

Le bundle 5.36 désactive la fonctionnalité « indirect »

L’utilisation d’appels de méthode « indirects » est très puissante et permet d’émuler des constructions comme $x = new Class;.

D’un autre côté, cette possibilité complique le travail de l’interpréteur en rendant de nombreuses erreurs détectable uniquement à l’exécution. C’est ce qui fait de la désactivation de cette fonctionnalité un « mal pour un bien » et donc une amélioration.

Le bundle 5.36 désactive la fonctionnalité « multidimensional »

L’utilisation d’une expression de liste comme clé de hachage pour simuler des tableaux multidimensionnels clairsemé

Les détails de ces changements peuvent être trouvés dans la documentation de Perl-5.36.0 mais la version courte est : c’est un peu comme avoir use strict; activé, les fonctionnalités qui causent plus de problèmes que de solutions sont désactivées. De plus, ajouter use 5.36; dans votre code activera également les avertissements comme si vous aviez écrit use warnings;

Enfin, avec cette version, la fonctionnalité expérimentale switch, présente dans chaque bundle de fonctionnalités depuis leur introduction dans la v5.10, a été supprimée du bundle v5.36. Si vous souhaitez l’utiliser (contre l’avis des développeurs du langage), vous devrez l’activer explicitement.

Ricardo Signes a annoncé le 28 mai 2022 des exceptions avec des blocs finally, des blocs defer, des boucles for avec plusieurs variables d’itération, Unicode 14 et une nouvelle classe de fonctions d’assistance importées via le pragma 'builtin'.

L’argument de ligne de commande -g

Un nouvel argument de ligne de commande, -g, est disponible. C’est un alias plus simple pour -0777.

Cet argument est utile pour les “one-liners” car il permet de lire un fichier en entier plutôt que ligne par ligne.

Par exemple un fichier data:

foo
bar
baz

Pourra être lu en une seule fois avec -0777 ou -g:

$ cat data | perl -g -e 'while (<>) { chop; print "[$_]"; }'
[foo
bar
baz]

Attention, cet argument change également le comportement d’autres fonctionnalités (comme chomp).

Prise en charge d’Unicode 14.0

Comme toujours, cette version de Perl améliore le support d’Unicode. Vous pouvez lire Unicode® 14.0.0 pour plus de détails. On pourra par exemple utiliser l’émoji “troll” et ce, même si on n’est pas vendredi.

Les ensembles de regex ne sont plus considérés comme expérimentaux

Avant cette version, la fonctionnalité des ensembles de regex (officiellement appelée “Extended Bracketed Character Classes”) était considérée comme expérimentale. Introduite dans la version 5.18.0 de Perl et modifié plusieurs fois depuis, elle est désormais considérée comme une fonctionnalité stable du langage et son utilisation n’affiche plus d’avertissement. Les personnes intéressées pourront lire la documentation de la fonctionnalité.

Le lookbehind de longueur variable n’est généralement plus considéré comme expérimental

Avant cette version, toute forme de lookbehind de longueur variable était considérée comme expérimentale. Avec cette version, le statut expérimental a été réduit pour ne couvrir que le lookbehind qui contient des parenthèses de capture. En effet, il n’est pas clair si “aaz”=~/(?=z)(?<=(a|aa))/ doit correspondre et laisser $1 égal à “a” ou “aa”. Actuellement, il correspondra à l’alternative la plus longue possible, “aa”. Bien que nous soyons convaincus que la construction globale ne correspondra désormais que lorsqu’elle le devrait, nous ne sommes pas sûrs de conserver le comportement actuel de “correspondance la plus longue”.

SIGFPE n’est plus différé

Les exceptions à virgule flottante sont maintenant livrées immédiatement, de la même manière que les autres “défauts” -comme les signaux tels que SIGSEGV. Cela signifie que l’on a au moins une chance d’attraper un tel signal avec un gestionnaire $SIG{FPE}, par exemple pour que la fonction die puisse signaler la ligne en perl qui l’a déclenché.

Suivi de booléen stable

Les valeurs booléennes “true” et “false”, souvent accessibles par des constructions comme !!0 et !!1 (idiomatique n’est-ce pas?), en plus d’être renvoyées par de nombreuses fonctions et opérateurs de base, se souviennent désormais de leur nature booléenne même via l’affectation à des variables. La nouvelle fonction is_bool() vient rejoindre les builtins et peut servir à vérifier si une valeur est de nature booléenne. Cela est susceptible d’être utile lors de l’interopérabilité avec d’autres langages ou de la sérialisation de type de données, entre autres.

Itération sur plusieurs valeurs à la fois (expérimental)

Vous pouvez désormais itérer sur plusieurs valeurs à la fois en spécifiant une liste de lexiques entre parenthèses. Par exemple:

for my ($key, $value) (%hash) { ... }
for my ($left, $right, $gripping) (@moties) { ... }

Avant Perl v5.36, essayer de spécifier une liste après for my donnait une erreur de syntaxe. Cette fonctionnalité est actuellement expérimentale et entraînera un avertissement de catégorie experimental::for_list. Pour plus de détails, voyez-la documentation associée.

Commentaires : voir le flux Atom ouvrir dans le navigateur

par Emmanuel Seyman, contra-sh, Patrick Trauquesègues, tisaac, Bruno Ethvignot, Ellendhel, Gil Cot, palm123

DLFP - Dépêches

LinuxFr.org

Entretien avec GValiente à propos de Butano

 -  16 avril - 

GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.Cet entretien revient sur son parcours et les raisons (...)


Nouveautés d'avril 2024 de la communauté Scenari

 -  11 avril - 

Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous (...)


Annuaire de projets libres (mais pas de logiciels)

 -  9 avril - 

Les communs sont une source énorme de partage !S’il est plutôt facile dans le monde francophone de trouver des ressources logicielles (Merci (...)


Les enchères en temps réel, un danger pour la vie privée mais aussi pour la sécurité européenne

 -  7 avril - 

Les enchères en temps réel, ou Real-Time Bidding (RTB), sont une technologie publicitaire omniprésente sur les sites web et applications mobiles (...)


XZ et liblzma: Faille de sécurité volontairement introduite depuis au moins deux mois

 -  31 mars - 

Andres Freund, un développeur Postgres, s’est rendu compte dans les derniers jours que xz et liblzma ont été corrompus par l’un des mainteneurs du (...)