Remplacement de valeur

Remplacement de valeur - Perl - Programmation

Marsh Posté le 23-11-2005 à 11:56:17    

Bonjour,
j'ai une petite question, si j'ai ma variable : $filtre = "(toto == 5) .
Est ce que je peux faire quelque chose dans le genre dans la suite de mon code :
if ($filtre){
 
... }  
En espérant que cela fasse : if (toto ==5){...}
 
SI quelqu'un sait comment faire ça, merci pour vos idées.

Reply

Marsh Posté le 23-11-2005 à 11:56:17   

Reply

Marsh Posté le 23-11-2005 à 12:29:55    

déjà y'a un truc que je comprends pas, tu as:

Code :
  1. $filtre = ($toto == 5);
  2. #OU
  3. $filtre = '($toto == 5)';
  4. #OU
  5. $filtre = "($toto == 5)";


C'est pas tout à fait la même chose dans les trois cas:
- dans le premier ta condition est evaluée au moment de l'execution de la ligne, tu as donc dans $filtre true or false en fonction de la valeur de toto.
- dans le deuxieme, $filtre contient exactement la chaine de caractères '($toto == 5)'
- dans le troisieme, $toto est evalué donc tu as "(VALEURDETOTO == 5)" dans $filtre
 
Bon maintenant pour que tu imagines avoir besoin de ça c'est que tu te voudrais t'en servir dans une boucle  avec toto changeant ou un truc du genre non?  
Alors il y a surement moyen de faire autrement ( lire plus correctement) mais décris nous plus ton besoin!
Sinon tu peux faire un truc dans ce genre la:

Code :
  1. $filtre = '($toto == 5)';
  2. ...
  3. if (eval($filtre)){
  4. }
  5. ...


toto etant bien evalué au moment du if.
 
Voila, j'espère que j'ai pas dit de conneries :o


Message édité par anapajari le 23-11-2005 à 12:31:40
Reply

Marsh Posté le 23-11-2005 à 14:04:47    

Non, nickel, je te remercie de ton aide !

Reply

Marsh Posté le 23-11-2005 à 20:31:17    

Tu es sur qu'un hash avec "toto" en clee et 5 en valeur n'est pas mieux adapte ? eval c'est lent et c'est moche.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed