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 :

Utilisation d'une variable dans use


Sujet :

Langage Perl

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut Utilisation d'une variable dans use
    salut,

    J'aimerai savoir s'il est possible (si oui de quelle manière) d'utiliser une variable pour constituer une source lors de la commande use

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    use Proto::$protomodule;
    en fait pour mon programme j'ai besoin de charger un module contenu dans le sous dossier Proto et le nom du module se trouve dans la variable $protomodule
    cette variable change suivant la configuration de l'utilisateur.

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Le progrogramme dans un premier temps charge tous les 'use' et ensuite lit le code, je ne sais pas si la variable posera problème ou non.

    Pour ce qui est de la façon d'appeler un module et de spécifier la localisation de son répertoire, regarde la réponse de Jedai dans http://www.developpez.net/forums/d59...nserer-source/

    Tu peux aussi voir la FAQ
    http://perl.developpez.com/faq/?page...nC3#sectionC33

  3. #3
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Fait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BEGIN {
      require "Proto/$protomodule.pm";
      "Proto::$protomodule"->import();
    }
    --
    Jedaï

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    Salut Jedai,

    ta méthode à l'air pas mal cependant ca me pose un petit soucis, en effet j'ai besoin de charger le fichier de configuration avant de faire appel à $protomodule et ici le fait que j'appel ce dernier dans le bloc BEGIN ne prend pas en compte ce que je lui demande de faire
    voici mon code:

    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
     
    use strict;
    use warnings;
     
    use lib 'src';
    use Utils;
     
    load_config;
     
    BEGIN {
    	my $proto = $config{ServerProto};
    	require "src/protocol/$proto.pm";
    	"src::protocol::$proto"->import();
    }
     
    irc_print;
    pour le test le module se nomme inspircd11.pm voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    package inspircd11;
    use strict;
    use warnings;
    use base 'Exporter';
    our @EXPORT = qw(irc_print);
     
    sub irc_print {
    	print "C'est un test\n";
    }
     
    1;
    comment faire pour charger ce dernier dans le fichier principal pour que ce module soit accessible dans tout le reste des mes fichiers source ?

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Il faut que tu charges la config avant d'essayer d'y accéder, mets load_config() dans le bloc BEGIN.

    --
    Jedaï

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    impec ca fonctionne merci

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/02/2006, 17h24
  2. [VB.NET] Utilisation d'une variable dans une autre form (!)
    Par neuropathie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/12/2005, 13h09
  3. [vb.net] utilisation d'une variable dans le code
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/09/2005, 19h22
  4. Réponses: 9
    Dernier message: 05/07/2005, 08h37
  5. Pl/SQL utilisation d'une variable dans un select
    Par larg dans le forum PL/SQL
    Réponses: 17
    Dernier message: 30/11/2004, 17h08

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