Variables de type variable, c'est possible ? - Perl - Programmation
Marsh Posté le 15-06-2004 à 02:58:21
Si, ça marche. Mais ce n'est quasiment jamais la bonne solution, et c'est même interdit avec « use strict » (qui devrait être obligatoire ). Pourquoi as-tu besoin de faire ça ?
Marsh Posté le 15-06-2004 à 11:05:00
oui c'est une demarche typique de débutant, mais comme le dit matafan ca n'est jamais une bonne solution (surtout en terme de vitesse, malgres ce qu'on pourrais penser!).
C'est faisable avec un eval ou en faisant un peit 'no strict', mais je te le deconseil franchement
la bonne solution ici serait d'utiliser un hash:
Code :
|
de toutes facon TOUTES les variables de Perl sont contenues en interne dans un hash:
Code :
|
Marsh Posté le 15-06-2004 à 19:41:28
matafan a écrit : Si, ça marche. Mais ce n'est quasiment jamais la bonne solution, et c'est même interdit avec « use strict » (qui devrait être obligatoire ). |
Comme j'utilise tout le temps "use strict", c'est pour ça que ça en marche pas.
Citation : Pourquoi as-tu besoin de faire ça ? |
Je ne sais plus
Je crois que c'était pour initialiser des tables de hash afin de créer des fichiers DBM.
Mais comme c'est du PERL, il y'a plus d'une façon de faire ce que l'on veut. Donc j'ai réussi à contourner le problème d'une autre manière. (mais pas propre... re-)
Marsh Posté le 15-06-2004 à 00:35:28
Je m'explique:
Imaginons que j'ai un tableau comme ceci:
@mon_tableau('soleil','lune','terre','pluton')
Est-ce que j'ai la possibilité de créer les variable à partir des noms contenu dans le tableau ?
De sorte que j'obtienne:
my $soleil;
my $lune;
my $terre;
my $pluton;
J'avais pensé faire une boucle de type foreach:
foreach my $planete (@tableau) {
$$planete = $meteo{$planete};
}
Mais évidemment, ça ne marche pas.
Message édité par Rasthor le 15-06-2004 à 00:37:12