これは簡単な質問のようですが、Perl6 / Rakuは期待どおりに動作していません。ハッシュ内の配列への参照を作成しようとしていますが、期待どおりの動作が得られません。Perl5では、答えは参照によって配列にアクセスすることを含みますが、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;
この混乱する余分な[0]インデックスレイヤーなしで、ネストされた配列を参照する新しい@arr変数を取得するにはどうすればよいですか?これはバグですか、それともRakuのArray / ref処理の理解で何か不足していますか?ありがとう。
my @arr := %json<arr>
値をコピーしたり、追加のオブジェクトを作成したりする必要がないため、ソリューションが最適です。