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 :

[langage] Probleme passage de variables entre modules


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut [langage] Probleme passage de variables entre modules
    Bonjour a tous,

    voilà mon probleme, mon progr est decouper en plusieurs partie j'ai mon script principal avec mon fichier pl qui appelle mon module extractor (fichier pm) et mon module extractor appelle mon module statistic, et j'aimerais savoir comment fais t'on pour recuperer les variables du module extractor et d'utliser la valeur de ces variables ds mon module statistic..

    J'espere avoir été assez claire...

    Merci d'avance de vos reponses..
    -------------------------------------------
    Happy c++ bon courage a tous
    PENSEZ AU TAG RESOLU :-)
    -------------------------------------------

  2. #2
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Points : 60
    Points
    60
    Par défaut
    Il y a des types différents de variables en Perl. Pour passer des valeurs à travers des modules, il faut utiliser des variables globales. Le méilleur est de les déclarer avec our.

    En fait, il faut savoir qu'est-ce que tu nommes des modules. Le plus souvent un module est un fichier contenant un package du même nom (fichier extractor.pm avec la première ligne 'package extractor').

    Quand tu écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    package extractor;
    ...
    our $ma_var = 1;
    ...
    1;
    il surgit la variable globale $extractor::ma_var. Elle est acessible sous ce nom de n'importe où dans ton code. Dans le package natal (extractor) elle est visible sous le nom court $ma_var. Illustration:

    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
    package extractor;
     
      our $ma_var = 1; # nous l'avons créé
     
      print $ma_var; # 1
     
      foreach my $ma_var (10..11)  {
        print $ma_var; # 10, puis 11 -- c'est une autre $ma_var, lexique
      }
     
      print $ma_var; # de nouveau 1
     
    package main; # changeons de package;
     
      print $ma_var; # rien, $main::ma_var est indéfinie
     
      print $extractor::ma_var # 1;
     
      $extractor::ma_var = 'foo';
     
    package extractor; # retournons;
     
      print $ma_var # foo;

  3. #3
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    j'ai pas le meme comportement que toi du projet, moi j'obtiens cà,

    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
     
    package extractor;
     
      our $ma_var = 1; # nous l'avons créé
     
      print $ma_var; # 1
     
      foreach my $ma_var (10..11)  {
        print $ma_var; # 10, puis 11 -- c'est une autre $ma_var, lexique
      }
     
      print $ma_var; # de nouveau 1
     
    package main; # changeons de package;
     
      print $ma_var; # m'affiche 1
     
      print $extractor::ma_var # m'affiche rien du tout;
     
      $extractor::ma_var = 'foo';
     
    package extractor; # retournons;
     
      print $ma_var # foo;
    cela ne m'affiche rien pour la variable print $extractor::ma_var

    et pour module c bien ca:

    En fait, il faut savoir qu'est-ce que tu nommes des modules. Le plus souvent un module est un fichier contenant un package du même nom (fichier extractor.pm avec la première ligne 'package extractor').
    -------------------------------------------
    Happy c++ bon courage a tous
    PENSEZ AU TAG RESOLU :-)
    -------------------------------------------

  4. #4
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Points : 60
    Points
    60
    Par défaut
    Tâchons encore 1 fois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    package extractor; 
      our $ma_var = 1;
    package main; # changeons de package; 
      print "main:'",  $extractor::ma_var, "'\n";
      $extractor::ma_var = 'foo'; 
    package extractor; # retournons; 
      print "extractor:'",  $ma_var, "'\n";
    donne

    main:'1'
    extractor:'foo'
    , non?

  5. #5
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    ton dernier script fonctionne je ne sais pas pourquoi l'autre ne me donne pas le meme résultat que toi.......

    Merci
    -------------------------------------------
    Happy c++ bon courage a tous
    PENSEZ AU TAG RESOLU :-)
    -------------------------------------------

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

Discussions similaires

  1. [CR XI] Probleme passage de Variables entre VB6 et Crystal XI
    Par ACIDEV dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 10/02/2011, 09h41
  2. Passage de variable entre 2 pages
    Par lodan dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/07/2006, 11h38
  3. passage de variable entre jsp ?
    Par MAJIK_ENIS dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/04/2006, 11h54
  4. Réponses: 2
    Dernier message: 15/12/2005, 08h43
  5. [C#] Passage de variables entre 2 forms
    Par Tips dans le forum C#
    Réponses: 6
    Dernier message: 06/12/2005, 16h48

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