[PERL] Noms de variables variables ?

Noms de variables variables ? [PERL] - Perl - Programmation

Marsh Posté le 25-04-2006 à 14:42:44    

Bonjour,
 
Voilà en fait je cherche à afficher un tableau de boutons en PERL/GTK2, dans le meme genre qu'un pavé numérique pour un application de calculatrice par exemple, sauf qu'il y aurait 64 boutons (8*8).
 
Pour faire ce tableau, je pourrais évidemment écrire les lignes de codes pour chaque boutton, etc...
 
Mais bon on peut facilement faire ca à l'aide de boucles. Mon seul soucis en fait c'est que pour chaque bouton il y a un nom de variable à changer evidemment. Je sais qu'en PHP il existe des noms de variables variables qui pourrait être la solution, je vous met ici un petit exemple tiré d'un site :
 

Code :
  1. <?php
  2. $afficher = 'ville'; // Modifiez la valeur de $afficher pour voir...
  3. // On définit les 3 variables dont on a parlé
  4. $ville = 'Marseille';
  5. $pays = 'France';
  6. $continent = 'Europe';
  7. echo ${$afficher}; // On affiche la variable dont le nom est "ville" dans notre exemple
  8. ?>


 
Sauf que visiblement en PERL ca existe pas, en tout cas je ne trouve rien dessus.
 
Donc j'aimerais savoir si quelqu'un connaitrait une alternative à ceci ou si je dois écrire les lignes de codes necessaires a chaque bouton.
 
Voici pour le moment la boucle que j'ai réalisée :

Code :
  1. my $grille = Gtk2::Table->new(8, 8, TRUE);
  2. my $every_eight = 0;
  3. my $it = 0;
  4. my @vars = ('A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8',
  5.  'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8',
  6.  'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8',
  7.  'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8',
  8.  'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8',
  9.  'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8',
  10.  'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8',
  11.  'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8');
  12. for (my $i = 0; $i < 64; $i++)
  13. {
  14.         my $temp = $vars[$i];
  15. my ${$temp} = Gtk2::Button->new($temp);
  16. $grille->attach_defaults(${$temp}, $it, $it + 1, $every_eight, $every_eight + 1);
  17. ${$temp}->show();
  18. if ($it == 7)
  19. {
  20.     $every_eight++;
  21.     $it = 0;
  22. }
  23. }


 
Je ne sais pas si elle est correcte ou pas mais je ne peux même pas tester car chaque fois ou il y a ${$temp} ca ne fonctionne pas donc je ne peux même pas tester puis débuggé.
 
J'espère que vous avez compris ce que je voulais faire, je sais que ca parle beaucoup de GTK mais c'est pas l'objet de la question car je vous ai tout mis pour bien expliquer le contexte mais j'ai pour le moment aucun problème dessus, c'est juste une alternative aux noms de variables variables que je cherche :)
 
Merci d'avance pour vos éventuelles réponses.


---------------
Mon Feedback !
Reply

Marsh Posté le 25-04-2006 à 14:42:44   

Reply

Marsh Posté le 25-04-2006 à 14:56:52    

Utilise les hashmaps plutôt.
 
Les noms de variable variables, c'est laid, c'est un non-sens, ça ne devrait jamais exister.

Reply

Marsh Posté le 25-04-2006 à 15:04:12    

Elmoricq a écrit :

Utilise les hashmaps plutôt.
 
Les noms de variable variables, c'est laid, c'est un non-sens, ça ne devrait jamais exister.


Je vais étudier ca  :jap:


---------------
Mon Feedback !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed