Dies scheint eine einfache Frage zu sein, aber Perl6 / Raku verhält sich nicht so, wie ich es erwarten würde. Ich versuche, einen Verweis auf ein Array innerhalb eines Hashs zu erstellen, erhalte jedoch nicht das erwartete Verhalten. In Perl5 würde die Antwort den Zugriff auf das Array als Referenz beinhalten, aber ich sehe keine äquivalente Syntax für Perl6 / Raku.
my $jsonstr = q:to/END/;
{
"arr" : [
"alpha","beta","delta","gamma"
]
}
END
my %json = from-json $jsonstr;
my @arr = %json{'arr'};
say "Arr length is " ~ @arr.elems; # Expect 4, get 1
say "Orig length is " ~ %json{'arr'}.elems; # Get expected value of 4
say "Arr[0] is " ~@arr[0].^name ~ " of length " ~ @arr[0].elems; # First index is array
say %json{'arr'}[0]; # Indexing into array in original location works as expected
say @arr[0][0]; # But when assigned, it needs an extra index
my @arr2 = @arr[0]; # Same issue in re-assignment here
say "Arr2[0]: " ~ @arr2[0] ~ ", length of " ~ @arr2.elems;
Wie erhalte ich eine neue @ arr-Variable, um auf das verschachtelte Array zu verweisen, ohne diese verwirrende zusätzliche [0] Indexebene? Ist das ein Fehler oder fehlt mir etwas in meinem Verständnis von Rakus Array / Ref-Handhabung? Vielen Dank.
my @arr := %json<arr>
Lösung am besten geeignet, da weder Werte kopiert noch zusätzliche Objekte erstellt werden müssen.