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 :

question : chargement d'un module par un autre module : bien ou pas bien ?


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 12
    Points : 16
    Points
    16
    Par défaut question : chargement d'un module par un autre module : bien ou pas bien ?
    Hello

    Je me pose une question métaphysique : j'ai un script toto.pl comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    use Mymodule::Init;
    print File::Spec->catfile('c:\a','essai.txt') . "\n";
    Ce code fonctionne car le module File::Spec est chargé à l'intérieur du module MyModule::Init;
    Est-ce que c'est bien ?
    Devrais-je ajouter tout de même un dans mon script toto.pl ? pour les Best Practices ?
    Ou autrement dit, comment pourrais-je faire en sorte que ce qui est fait dans mon module MyModule::Init ne soit pas "transmis" à mon script toto.pl à part les fonctions que j'exporte ?

    C'était la question du matin de milieu de semaine

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Pour une question de meilleure lisibilité, je suggère de rajouter use File::Spec;.
    A la relecture de ton programme, tu comprendras de suite pourquoi il fonctionne. Ce n'est qu'un avis personnel.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    Bonjour Djibril

    A la relecture de ton programme, tu comprendras de suite pourquoi il fonctionne.
    Je ne comprends pas pourquoi tu dis cela.

    Si mon module Mymodule::Init contient use File::Spec;
    alors oui mon script fonctionne.

    Si derrière un développeur décide de modifier le script et de ne plus utiliser le module Mymodule::Init alors le script ne fonctionnera plus car il n'y aura plus le use File::Spec implicitement fait.

    Donc ma compréhension est que chaque script devrait charger explicitement le module dont il a besoin mais parfois en testant on peut en oubliant et pourtant le code fonctionnera si un module inclut lui-même un autre module utilisé dans le script.

    Suis-je clair ?


    D'où ma question : avez-vous été confronté à ce genre de problème et si oui comment faites-vous ?

  4. #4
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par pomoxp Voir le message
    Bonjour Djibril
    Si mon module Mymodule::Init contient use File::Spec;
    alors oui mon script fonctionne.

    Si derrière un développeur décide de modifier le script et de ne plus utiliser le module Mymodule::Init alors le script ne fonctionnera plus car il n'y aura plus le use File::Spec implicitement fait.
    D'où ma suggestion de charger le module pour éviter ce genre de soucis

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 35
    Points : 42
    Points
    42
    Par défaut
    Ce que veut dire Djibril c'est que ce serait mieux d'ajouter dans toto.pl:
    Les autres developpeurs ne savent pas forcement où se trouvent les differents modules.
    Cela permet d'avoir une meilleur lisibilité dans le programme.

    De plus, tout définir permet d'eviter certaines supprises lorsque l'on veut supprimer certains use.

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    Ok merci à tous les deux.
    Nous sommes donc d'accord et c'est mieux quand c'est dit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [V7] Modifier une vue de base déjà modifiée par un autre module
    Par alexdess dans le forum Odoo (ex-OpenERP)
    Réponses: 9
    Dernier message: 05/12/2018, 12h51
  2. Cacher un champ développé par un autre module.
    Par alexdess dans le forum Odoo (ex-OpenERP)
    Réponses: 17
    Dernier message: 15/07/2014, 16h28
  3. paramétrer un module par un autre module
    Par gorgonite dans le forum F#
    Réponses: 12
    Dernier message: 27/05/2008, 17h08
  4. Réponses: 4
    Dernier message: 14/05/2007, 13h44

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