Esto parece una pregunta simple, pero Perl6 / Raku no se está comportando como esperaba. Estoy tratando de crear una referencia a una matriz dentro de un hash, pero no obtengo el comportamiento esperado. En Perl5, la respuesta implicaría acceder a la matriz por referencia, pero no veo una sintaxis equivalente para 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;
¿Cómo obtengo una nueva variable @arr para hacer referencia a la matriz anidada sin esta capa de índice extra [0] confusa? ¿Es esto un error o me falta algo en mi comprensión del manejo de Raku's Array / ref? Gracias.
my @arr := %json<arr>
solución es la mejor, ya que no necesita copiar ningún valor ni crear ningún objeto adicional.