je suis bien conscient que mon titre ne veut pas dire grand chose, je vais mieux expliquer.
Mon code (simplifie) ressemble a ca:
my $variable;
my $v = "variable";
eval "\$$v = 42";
print "$variable\n"; #je voudrais avoir 42
En gros, j'ai une variable qui a un certain nom ($variable), une autre qui contient le nom de la premiere variable ('variable') et je veux pouvoir utiliser $variable a partir de son nom simplement, donc partir de $v.
C'est donc la ligne eval qui est mauvaise, mais un epluchage de la doc et de nombreux essais infructueux ne m'ont rien donne.
Ma question est donc double:
- est ce moi qui n'ai rien compris a eval, et il est impossible de faire ce que je veux faire
- si c'est possible, ou est mon erreur?
Merci a ceux qui pourront m'eclairer
# RE : Programmation.perl : Modification de variables "dynamiques"
Posté par tontonflingueur . Évalué à 1.
[^] # Re: RE : Programmation.perl : Modification de variables "dynamiques"
Posté par kesako . Évalué à 2.
BTW : ca marche aussi chez moi (perl v5.005 et v5.8.x). Tu as du melanger les programmes ...
[^] # Re: RE : Programmation.perl : Modification de variables "dynamiques"
Posté par lom (site web personnel) . Évalué à 1.
Et effectivement ca marche aussi chez moi...
hum.
J'imagine qu'en simplifiant j'ai du supprimer une erreur qui etait dans le script initial, et j'avoue ne pas avoir essaye la version que j'ai poste ici...
En tout cas merci a vous deux, je vais pouvoir continuer l'esprit tranquille.
[^] # Re: RE : Programmation.perl : Modification de variables "dynamiques"
Posté par tontonflingueur . Évalué à 1.
@+
[^] # Re: RE : Programmation.perl : Modification de variables "dynamiques"
Posté par kesako . Évalué à 3.
Une petite recherche sur google t'expliquera mieux que moi.
Un exemple simple : soit une page web avec des champs (des forms) et des boutons . les boutons sont des actions, et les champs des operations
( par exemple plusieurs lignes avec chacune un champs de texte + 2 bouton "modifier" "suprimer" )
au niveau du cgi on recupere leur valeur :
$operation=$query->param('Operation');
$action = $query->param('Action');
ensuite on concatene les chaines :
$func = $action.'_'.$operation;
il ne reste plus qu'a appeler la fonction correspondante :
eval { &$func($query); };
par exemple :
sub modifier_password
{
...
}
c'est un cas tres limité mais cela permet de rendre le code bien plus lisible
[^] # Re: RE : Programmation.perl : Modification de variables "dynamiques"
Posté par tontonflingueur . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.