[PERL] traduction variable dans chaine de caractère

traduction variable dans chaine de caractère [PERL] - Perl - Programmation

Marsh Posté le 19-05-2005 à 16:18:29    

Bonjour, je suis bloqué sur un point:
 
j'ai un fichier de config:

Code :
  1. admin=>DESKTOP|"$SYSTEMROOT"\\explorer.exe
  2. users=>INTERNET EXPLORER|"$PROGRAMFILES"\\Internet Explorer\\IEXPLORE.EXE


 
J'ai fais un script qui va lire et cré des tables de hash avec référence etc etc ....
 
Mon problème, c'est que je ne sais pas comment insérer mes valeur dans le hash, en traduisant "$SYSTEMROOT" par exemple .....  
 
Merci d'avance
Rudy

Reply

Marsh Posté le 19-05-2005 à 16:18:29   

Reply

Marsh Posté le 19-05-2005 à 16:25:16    

c'est censé etre des variables d'environnement?

Reply

Marsh Posté le 19-05-2005 à 16:30:28    

ouais mais pas forcement....
j'ai trouvé, en regex:
 

Code :
  1. $var=~ s/(\$\w+)/$1/eeg;


 
A+

Reply

Marsh Posté le 19-05-2005 à 16:54:48    

hornetmen a écrit :

ouais mais pas forcement....


 
 
Tu n'es pas assez vague, pourrais-tu être un peu moins précis ?
 
Sinon, si ce sont des variables d'environnement, il te suffit d'utiliser le hachage global %ENV.


Message édité par Elmoricq le 19-05-2005 à 16:55:40
Reply

Marsh Posté le 19-05-2005 à 17:00:20    

hornetmen a écrit :

ouais mais pas forcement....
j'ai trouvé, en regex:
 

Code :
  1. $var=~ s/(\$\w+)/$1/eeg;


 
A+


à ce compte la tu peux aussi faire:
$var= eval $var;
 
et ca marchera pareil
 
mais bon ca enlevera pas les "" (mais d'ailleurs tu ne les a pas nonplus enlevé dans ta regexp!)
 
=>
 
$var =~ s/"(\$[^"])"/$1/eeg;


Message édité par pospos le 19-05-2005 à 17:02:58
Reply

Sujets relatifs:

Leave a Replay

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