Je suis assez novice en Perl et j'essaie de construire un hash récursivement sans succès. J'ai essayé de chercher des tutoriels pour construire dynamiquement des hashs, mais tout ce que j'ai pu trouver, ce sont des articles d'introduction sur les hashs. Je vous serais reconnaissant de m'indiquer la bonne direction ou de me suggérer un article/tutoriel intéressant.
J'essaie de lire un fichier dont les chemins d'accès se présentent sous la forme de
one/two/three
four
five/six/seven/eight
et je veux construire un hash comme
VAR = {
one : {
two : {
three : ""
}
}
four : ""
five : {
six : {
seven : {
eight : ""
}
}
}
}
Le script que j'utilise actuellement est :
my $finalhash = {};
my @input = <>;
sub constructHash {
my ($hashrf, $line) = @_;
@elements = split(/\//, $line);
if(@elements > 1) {
$hashrf->{shift @elements} = constructHash($hashrf->{$elements[0]}, @elements );
} else {
$hashrf->{shift @elements} = "";
}
return $hashrf;
}
foreach $lines (@input) {
$finalhash = constructHash($finalhash, $lines);
}