私はPerlにかなり慣れていないので、これが簡単な質問のように思えたら許してください...
とにかく、配列のハッシュがあり、ハッシュ内の配列の 1 つを取得しようとしていますが、取得できるのは配列のスカラー サイズだけです。
%HoA = a hash of arrays
$key = some key in the hash
foreach $nextItem (@HoA{$key}) {
do a bunch of stuff with $nextItem
}
これを行うと、$nextItem は常に配列のサイズになり、ループは 1 回だけ実行されます。以下を印刷してみました。
@HoA{$key}
$HoA{$key}
@$HoA{$key}
最初の 2 つはスカラー サイズを提供し、3 番目は何も提供しません...ここで何が欠けていますか?
更新:私の問題が実際に配列をハッシュに追加する方法にあるのかどうか疑問に思っています。これが私がやっていることです:
@HoA{$key} = split(/ /, $list);
それは配列をハッシュに貼り付けますか、それとも配列サイズをハッシュに貼り付けますか?
更新 2: 次のコード ブロックを試しました。
my $key = "TEST";
my %HoA = ();
my @testarray = (1, 2, 3);
@HoA{$key} = @testarray;
print Dumper(%HoA);
出力は次のとおりです。
$VAR1 = 'TEST';
$VAR2 = 1;
配列の最初の値だけを貼り付けるのはなぜですか?