IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

eval et use/require/$module meilleure écriture ?


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut eval et use/require/$module meilleure écriture ?
    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.

    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";
    Vérification de syntaxe : KO
    syntax error at ....pl line 8, near "use $module"
    Autre code :
    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";
    Vérification de syntaxe : OK
    Fonctionnalité : OK
    Vérification Perl::Critic : KO
    Expression form of "eval" at line 5, column 1. See page 161 of PBP. (Severity: 5)
    Autre code :
    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";
    Vérification de syntaxe : KO
    Useless use of string in void context at ...pl line 5.
    Fonctionnalité : KO. Quelque soit le module, pour Perl il n'est pas installé.

    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 ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Salut Djibril,

    chercher le fichier dans les répertoires listés dans @INC, peut-être.

  3. #3
    Membre expérimenté
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Par défaut
    Bonjour,
    et quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    use 5.20.2;
    use warnings;
    use Module::Load;
    my $module = 'XML::Twig';
    eval { load $module; 1 } or warn "you need $module to run this program !";
    sur le site de perl critic j'ai eu ça
    Nom : Pasted code - Google Chrome.jpg
Affichages : 242
Taille : 43,5 Ko

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    le code fonctionne bien. Malheureusement, il faut que Module:Load soit installé

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    C'est donc bon signe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    corelist  -a Module::Load
     
    Data for 2015-06-01
    Module::Load was first released with perl v5.9.4
      v5.9.4     0.10
      v5.9.5     0.10
      v5.10.0    0.12
      v5.10.1    0.16
      v5.11.0    0.16
      v5.11.1    0.16
      v5.11.2    0.16
      v5.11.3    0.16
      v5.11.4    0.16
      v5.11.5    0.16
      v5.12.0    0.16
      v5.12.1    0.16
      v5.12.2    0.16
      v5.12.3    0.16
      v5.12.4    0.16
      v5.12.5    0.16
      v5.13.0    0.16
      v5.13.1    0.16
      v5.13.2    0.16
      v5.13.3    0.18
      v5.13.4    0.18
      v5.13.5    0.18
      v5.13.6    0.18
      v5.13.7    0.18
      v5.13.8    0.18
      v5.13.9    0.18
      v5.13.10   0.18
      v5.13.11   0.18
      v5.14.0    0.18
      v5.14.1    0.18
      v5.14.2    0.18
      v5.14.3    0.18
      v5.14.4    0.18
      v5.15.0    0.18
      v5.15.1    0.18
      v5.15.2    0.20
      v5.15.3    0.20
      v5.15.4    0.22
      v5.15.5    0.22
      v5.15.6    0.22
      v5.15.7    0.22
      v5.15.8    0.22
      v5.15.9    0.22
      v5.16.0    0.22
      v5.16.1    0.22
      v5.16.2    0.22
      v5.16.3    0.22
      v5.17.0    0.22
      v5.17.1    0.22
      v5.17.2    0.22
      v5.17.3    0.22
      v5.17.4    0.22
      v5.17.5    0.22
      v5.17.6    0.22
      v5.17.7    0.22
      v5.17.8    0.22
      v5.17.9    0.24
      v5.17.10   0.24
      v5.17.11   0.24
      v5.18.0    0.24
      v5.18.1    0.24
      v5.18.2    0.24
      v5.18.3    0.24
      v5.18.4    0.24
      v5.19.0    0.24
      v5.19.1    0.24
      v5.19.2    0.24
      v5.19.3    0.24
      v5.19.4    0.24
      v5.19.5    0.24
      v5.19.6    0.24
      v5.19.7    0.24
      v5.19.8    0.28
      v5.19.9    0.30
      v5.19.10   0.32
      v5.19.11   0.32
      v5.20.0    0.32
      v5.20.1    0.32
      v5.20.2    0.32
      v5.21.0    0.32
      v5.21.1    0.32
      v5.21.2    0.32
      v5.21.3    0.32
      v5.21.4    0.32
      v5.21.5    0.32
      v5.21.6    0.32
      v5.21.7    0.32
      v5.21.8    0.32
      v5.21.9    0.32
      v5.21.10   0.32
      v5.21.11   0.32
      v5.22.0    0.32

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut

Discussions similaires

  1. [XSD] usage du use="required"
    Par ZeNoob dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 12/06/2012, 11h04
  2. RPC "did you forget to inherit a required module?"
    Par gwinyam dans le forum GWT et Vaadin
    Réponses: 21
    Dernier message: 31/05/2010, 11h21
  3. [SmartGWT] did you forget to inherit a required module?
    Par touille dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 05/05/2010, 10h46
  4. problème avec GWT:did you forget to inherit a required module
    Par riadhhwajdii dans le forum GWT et Vaadin
    Réponses: 10
    Dernier message: 03/02/2010, 15h42
  5. Réponses: 2
    Dernier message: 25/06/2009, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo