Bitte, ich versuche, eine komplexe Datenstruktur zu erstellen. Ich weiß, wieWie erstelle ich rekursiven Hash von Hash? (Mit unbegrenzt tief)
$branch{'level1'}{'level2'}{'level3'}='leaf';
zu tun, aber ich weiß nicht, wie erstellen
$branch{'level1'}....{'levelN'}='leaf';
ich so etwas versuchen:
$branch{'leaf'} = "1";
$branchREF = \%branch;
$branchtmp{'level3'} = $branchREF;
Also ich succefully erhalten:
$VAR1 = 'level3';
$VAR2 = {
'leaf' => '1'
};
Aber für den nächsten Schritt, einen rekursiven N-Hash von h zu tun Asche, ich versuche:
%branch = %branchtmp;
Aber das Ergebnis ist völlig falsch ... %branch
ist nicht das, was ich erwarte. Um meine Rekursivität zu nutzen, muss ich meine erste %branch
wiederverwenden und keine neue erstellen. Wie kann ich bitte machen?
A.
Dies kann sehr vereinfacht werden, wenn Sie sowohl $ cursor = ...; mit '$ cursor = \ (...);' ersetzen und alle anderen Instanzen von '$ cursor' anpassen. Siehe meine Antwort (http://stackoverflow.com/a/37417801/589924). – ikegami