Bonjour,
Petit dilemme d'écriture Perl. J'ai un programme très basique dont le but est de tester si un module est installé sur l'OS. Le nom du module est dans une variable. Voilà diverses écritures et messages d'erreurs de syntaxe ou de Perl::Critic. Du coup, je n'ai pas de solutions, merci de me donner vos avis.
Vérification de syntaxe : KO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #!/usr/bin/perl use strict; use warnings; my $module = 'XML::Twig3dd'; eval { use $module; } or die "$@ $module not installed";
Autre code :syntax error at ....pl line 8, near "use $module"
Vérification de syntaxe : OK
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #!/usr/bin/perl use strict; use warnings; my $module = 'XML::Twig3dd'; eval "use $module"; warn "$@ $module not installed";
Fonctionnalité : OK
Vérification Perl::Critic : KO
Autre code :Expression form of "eval" at line 5, column 1. See page 161 of PBP. (Severity: 5)
Vérification de syntaxe : KO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #!/usr/bin/perl use strict; use warnings; my $module = 'XML::Twig'; eval { "use $module;"; }; warn "$@ $module not installed";
Fonctionnalité : KO. Quelque soit le module, pour Perl il n'est pas installé.Useless use of string in void context at ...pl line 5.
Avec require, ce n'est guère mieux. Alors quelle est la bonne syntaxe pour ne pas avoir d'erreurs de syntaxe, ne pas avoir d'avertissement de Perl::Critic et que le script fonctionne?
Partager