Soy bastante nuevo para Perl y estoy tratando de construir hash recursivamente y llegar a ninguna parte. Traté de buscar tutoriales para construir hashes dinámicamente, pero todo lo que pude encontrar fueron artículos introductorios sobre hashes. Le agradecería me señalara en la dirección correcta o sugiriera un buen artículo/tutorial.hash de construcción dinámica/recursiva en Perl?
Estoy intentando leer desde un archivo que tiene caminos en forma de
one/two/three
four
five/six/seven/eight
y quiero construir un hash como
VAR = {
one : {
two : {
three : ""
}
}
four : ""
five : {
six : {
seven : {
eight : ""
}
}
}
}
El script que estoy usando actualmente es :
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);
}
Su línea 'my ($ hashrf, $ line) = $ _;' probablemente debería leer 'my ($ hashrf, $ line) = @_;' en su lugar. –
Reparado :) Pero todavía no se suma a nada. Si imprimo el valor de 'hashrf' en el ciclo, siempre es' '' ' –