creation récursive d'un hash
Bonjour je travail actuellement sur un outil dont j'ai besoin pour configurer des vues sous Clearcase et pour cela j'ai besoin de générer un hash contenant l'arborescence de mes modules et sous modules.
En gros pour faire simple, j'aurais besoin de passer une liste à ma fonction:
Code:
my @list = ("a/b/c","a/b/d")
et de récupérer en résultat un hash de la forme:
Code:
1 2 3 4 5 6 7 8 9
|
$hash = {
a => {
b => {
c => {},
d => {}
}
}
} |
J'ai essayé de faire une telle fonction mais mon hash ne contient seulement la structure du dernier élément de la liste.
Voici ma fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
sub setHash{
my $listModule = shift;
my $tree = {};
my @listArr = split("/",$listModule);
while(scalar(@listArr)>0){
my $elem = shift(@listArr);
$tree->{$elem} = setHash(join('/',@listArr));
return $tree;
}
return $tree;
} |
Si par hasard quelqu'un aurait une idée ça serait super.