Derniers journaux de bplessis :
- [17/10@08:28] Solaris Java et XFree
- [01/10@13:48] ATI Drivers -- Radeon 8500 && lowres Fullscreen
- [30/09@08:18] Test Gentoo
- [14/08@12:48] Bouh la la qu'est ce qui ce passe.....
- [11/07@12:08] Bijour, bijour
- [25/06@07:57] Bonjour, cher journal
- [30/04@13:47] Mozilla aurait l'alzheimer ?
- [30/04@13:39] Mozilla & Co
- [28/03@12:23] Kernel 2.4 plus sensible que le 2.2 et le 2.5 ?
Journal : Perl, de l'art de reevaluer les chaines ...
Posté par -=[ Benoit Plessis ]=- (page perso, ) le 20 novembre 2003
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
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
> Lire le journal (3 commentaires, moyenne: 1).
Re: Perl, de l'art de reevaluer les chaines ...
Posté par
-=[ Benoit Plessis ]=- (page perso, ) le 20/11/2003 à 15:00. (lien). Évalué à 1.
une solution semblerai etre:
$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 ?
--
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que vous teniez vous même la tronçonneuse" (traduction libre)
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que vous teniez vous même la tronçonneuse" (traduction libre)
Re: Perl, de l'art de reevaluer les chaines ...
Posté par
ukemi (page perso, ) le 21/11/2003 à 10:49. (lien). Évalué à 1.
s/\\\$/\$/ ?
sauf si t'as des $ qui se baladent forcément
-
[^]Re: Perl, de l'art de reevaluer les chaines ...
Posté par -=[ Benoit Plessis ]=- (page perso, ) le 21/11/2003 à 15:22. (lien). Évalué à 1.Hum, pas sur que tu ai tout saisi, les $ sont precedé d'un \ uniquement dans
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).--
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que vous teniez vous même la tronçonneuse" (traduction libre)

Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.