Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2607 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] Nom de Variable Dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] Nom de Variable Dynamique

n°1479268
mcshu
Posté le 21-11-2006 à 14:30:16  profilanswer
 

Bonjour,
 
Je suis une débutante en langage PERL.
Je souhaiterai savoir comment avec un incrément $i créer des noms de variables dynamiquement.
Je me perds dans la syntaxe.
 
Ce serait pour utiliser des noms de tableaux de hashage % différents en référence \ dans un tableau @.
Je ne sais pas si je suis claire.
Merci d'avance.

mood
Publicité
Posté le 21-11-2006 à 14:30:16  profilanswer
 

n°1479445
franceso
Posté le 21-11-2006 à 17:02:01  profilanswer
 

J'ai pas trop compris la question, mais il ne faut pas créer de noms de variables dynamiquement. En général, on utilise des tables de hachage à la place.
 
Peux-tu préciser la question et nous donner ton bout de code si tu as déjà un début ?


---------------
TriScale innov
n°1479463
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-11-2006 à 17:22:21  profilanswer
 

pareil pas tout compris.
Mais si tu utilises des reférences sur tes tableaux de hashage, je vois pas pourquoi tu aurais besoin de les nommer :??:
Exemple:

Code :
  1. my @tableau = (
  2. {'cle1'=>12, 'cle2'=>3, 'cle3'=>5},
  3. {'cle1'=>20, 'cle2'=>5, 'cle3'=>4},
  4. {'cle1'=>10, 'cle2'=>4, 'cle3'=>3},
  5. );
  6. my %hash = ( 'cle1'=>10, 'cle2'=>4, 'cle3'=>3);
  7. push @tab, \\%hash;

Message cité 1 fois
Message édité par anapajari le 21-11-2006 à 17:22:42
n°1479497
mcshu
Posté le 21-11-2006 à 18:06:58  profilanswer
 

anapajari a écrit :

pareil pas tout compris.
Mais si tu utilises des reférences sur tes tableaux de hashage, je vois pas pourquoi tu aurais besoin de les nommer :??:
Exemple:

Code :
  1. my @tableau = (
  2. {'cle1'=>12, 'cle2'=>3, 'cle3'=>5},
  3. {'cle1'=>20, 'cle2'=>5, 'cle3'=>4},
  4. {'cle1'=>10, 'cle2'=>4, 'cle3'=>3},
  5. );
  6. my %hash = ( 'cle1'=>10, 'cle2'=>4, 'cle3'=>3);
  7. push @tab, \\%hash;



 
Je traite un fichier texte.
Je lis une ligne structurée (qui correspond aux valeurs de mes clés de hashage)
J'ai çà dans une boucle while avec un index $i que j'utilise pour alimenter le tableau @tab

Code :
  1. $i = 0;
  2. while (<FDATA> )
  3. {
  4. my %hash = ( 'cle1'=>10, 'cle2'=>4, 'cle3'=>3);
  5. push @tab, \\%hash;
  6. $i++;
  7. }


 
Pb quand je souhaite utiliser les indices pour consulter le tableau après.
 
$tab[0]->{cle1} me renvoit tjs la valeur pour le dernier indice $i.
 
Merci d'avance de votre aide.

n°1479526
franceso
Posté le 21-11-2006 à 19:07:51  profilanswer
 

et si tu fais :

Code :
  1. while (<DATA> )
  2. {
  3.   push @tab, {'cle1'=>$val1, 'cle2'=>$val2};
  4. }


 
ca marche pas ?


---------------
TriScale innov
n°1479538
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-11-2006 à 19:25:40  profilanswer
 

ça devrait marcher quand même ... j'en deduis  que c'est pas ton "vrai" code et qu'il doit y avoir une boulette dans celui-ci!

n°1479790
franceso
Posté le 22-11-2006 à 10:53:20  profilanswer
 

anapajari a écrit :

ça devrait marcher quand même ... j'en deduis  que c'est pas ton "vrai" code et qu'il doit y avoir une boulette dans celui-ci!

Ah tiens, je ne savais pas que la hash locale était recréée à chaque tour de boucle. Intuitivement j'aurais dit que c'était toujours la même hash qui était utilisée, donc que la référence ne changeait jamais... Merci pour les éclaircissements :jap:


---------------
TriScale innov
n°1479798
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-11-2006 à 11:08:04  profilanswer
 

En fait c'est logique puisque la portée de %hash est limité au while.
Par contre si %hash est déclarée hors du while, ça peut pas marcher.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] Nom de Variable Dynamique

 

Sujets relatifs
nom de variable incrémentantVariable JS dans une varibale de session
[RESOLU] Balise alt contenu dans variable php[JS] Afficher le contenu d'une variable dans un champ de texte/form
JDBC, déclaration dynamique des requête SQL ?transmettre variable caché par POST
Importation dynamique de librairie partagéecréation dynamique de nouvelles colonnes d'un listview
Variable $msg non transmise ou refresh ne se fait pasQue fait un if(variable) ?
Plus de sujets relatifs à : [PERL] Nom de Variable Dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR