Voilà mon petit problème : je cherche à substituer dans un hash (issu d'un fichier xml) des variables. Concrètement :

j'ai des valeurs dans mon hash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
my $hash = {
                  'num_carte'   => 4,
                  'num_acces'  => 1,
                  ....
                  'interface'   => '$num_carte/$num_acces'
}
Et je veux substituer $num_carteet $num_accesavec les valeurs présentes dans le hash.
ça fonctionne très bien dans le cas d'une variable seule, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
my $hash = {
                  'num_carte'   => 4,
                  'num_acces'  => 1,
                  ....
                  'interface'   => '$num_carte'
}
qui devient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
my $hash = {
                  'num_carte'   => 4,
                  'num_acces'  => 1,
                  ....
                  'interface'   => 4
}
Mais avec mon premier exemple, ça ne fonctionne pas bien...
Avec la regexp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$structure->{$cle} =~ s/\$(\S+?)[^\S]?/$valeurs->{$1}/g;
J'ai le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
my $hash = {
                  'num_carte'   => 4,
                  'num_acces'  => 1,
                  ....
                  'interface'   => 'um_carte/um_acces'
}
Et avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$structure->{$cle} =~ s/\$(\S+?)\//$valeurs->{$1}/g;
J'ai évidemment :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
my $hash = {
                  'num_carte'   => 4,
                  'num_acces'  => 1,
                  ....
                  'interface'   => '4/$num_acces'
}
Quelqu'un pour m'aider sur la regexp ?