Ich habe eine Klasse mit einer Methode, die einen Hash zurückgibt. Normalerweise würde ich das Ergebnis bekommen, wie so:Wie dereferenziere ich einen Hash, der von einer Methode einer Klasse zurückgegeben wurde?
%resp = $myclass->sub($foo);
Und dann Zugang Mitglieder des zurückgegebenen Hash wie folgt aus:
$resp{key}{subkey};
im Fall eines 2D-Hash.
ich es führen muss ein Weg sein, diese in eine einzige, elegante Linie zu kombinieren, etwa so:
$myclass->sub($foo)->{key}{subkey}
Das ist offensichtlich nicht richtig wie Perl gibt diese dereferenziert, wenn Sie den Code auszuführen versuchen:
Can't use string ("1/8") as a HASH ref
bei dem Versuch zufällig dereferencing Sequenzen, von "References quick reference" on Perlmonks suchen, kam ich mit dem Follow-up, die Perl beschwert sich nicht über, aber auch nicht zurück, was ich suche:
$%{$myclass->sub($foo)}->{key}{subkey}
Kann mir jemand sagen, was die magische Dereferenzierung Escape-Sequenz ist, dies zu tun?
Jeder scheint zu wollen, dass es härter lebt, indem er zwei vollkommen gute Linien in eine durcheinander geratene Linie verwandelt. Sicherlich gibt es bessere Dinge zum Nachdenken. :) –