Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Derniers journaux de bplessis :

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

> Lire le journal (3 commentaires, moyenne: 1).  

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.

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)

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)

Revenir en haut de page