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 :

affectation de variable


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut affectation de variable
    Bonjour,

    J'ai une petite question : lorque je veux utiliser la variable $result_TST en dehors de mon if, j'ai l'erreur suivante : Global symbol "$result_TST" requires explicit package name.

    Merci de regarder le code ci dessous, vous allez comprendre !


    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
     
    my $Ligne_TST="sous-travail";
    my $FicLog="C:/LOG/20100910__log.txt" ;
    my $Ligne="";
     
    open (FIC, "<$FicLog") || die "Ouverture impossible du fichier $FicLog: $!";	
    	while ($Ligne = <FIC> ) 
       	{  
    	    if (grep { $Ligne =~ m/$_/g } $Ligne_TST)
      	   { 
    		my (undef,$result_TST) = split(/\s*:\s*/,$Ligne) ;
    		$result_TST =~ s/[\t\s\#]//g;
    		print "Nom : <<$result_TST>> \n";
                              #le resultat s'affiche bien
    	   }
    	}				
     
     close (FIC);
    print "Nom : <<$result_TST>> \n";
    # Le resultat de la variable $result_TST ne s'affiche pas, pourquoi ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    L'instruction my défini une variable dont la portée est limitée au bloc dans laquelle elle est introduite. Ainsi, si tu veux utiliser $result_TST, il faut le déclarer au bon endroit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    my $Ligne_TST="sous-travail";
    my $FicLog="C:/LOG/20100910__log.txt" ;
    my $Ligne="";
    my $result_TST;
     
    ...
     
    	    if (grep { $Ligne =~ m/$_/g } $Ligne_TST)
      	   { 
    		(undef,$result_TST) = split(/\s*:\s*/,$Ligne) ;
    		$result_TST =~ s/[\t\s\#]//g;
     
    ...
    Cela dit attention, $result_TST, en dehors de la boucle, vaudra la dernière valeur affectée.

Discussions similaires

  1. Problème d'affectation de variable
    Par bob33 dans le forum C
    Réponses: 3
    Dernier message: 04/11/2005, 17h01
  2. Affecter une variable javascript à une variable php
    Par gwendy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 20h58
  3. affecter une variable de type stringstream
    Par sorari dans le forum SL & STL
    Réponses: 3
    Dernier message: 24/03/2005, 11h14
  4. [PS] affectation de variable
    Par madmortal dans le forum SQL
    Réponses: 2
    Dernier message: 01/09/2004, 13h17
  5. script SQL : affectation de variables
    Par Laura dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/10/2003, 21h32

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