Salut a tous,
j'ai actuellement un petit soucis en perl, en fait j'ai une appli qui
possede un fichier de conf (contenant entre autre des requetes
SQL) parsé par AppConfig. Ca marche plutot pas mal et c'est cool.
Le truc qui me coince actuellement est le suivant: parmis ces requetes
certaines ont besoin de variables locales a l'applications (des id, des dates,
...). Pour ne pas que AppConfig me les parses en pensant que ce sont
des variables du fichier de conf je met un '\' devant le $, c cool
ca ca marche.
Le probleme est comment remplacer automatiquent ces noms de variables dans
l'appli ?
j'avais cru trouvé une solution sous la forme d'une regexp:
s/\$([A-za-z]\w*)/${$1}/g;
mais ca marche pas meme avec le dernier perl: Use of uninitialized value in substitution iterator ...
alors que s/\$([startyear]*)/${startyear}/g; marche (mais bon un par variable ..., et puis surtout je suis sur d'avoir deja vu une solution plus elegante mais impossible de remettre la mains dessus ...)
Help plz
Help
# Re: Perl, de l'art de reevaluer les chaines ...
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
$p = eval "qq($_)"; ou $p = eval qq(qq($_););
ou $p contient la chaine avec les variables remplacées et $_ la meme avec les noms de variables.
des idées d'améliorations ? des commentaires ?
# Re: Perl, de l'art de reevaluer les chaines ...
Posté par ukemi . Évalué à 1.
sauf si t'as des $ qui se baladent forcément
[^] # Re: Perl, de l'art de reevaluer les chaines ...
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
le fichier de conf, une fois lu par AppConfig il n'y a plus de \ et un affichage des chaines donne "toto > $variable", le pb etait de forcer la lecture de la chaine pour evaluer localement la variable (vu qu'elle change suivant les passage dans la boucle).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.