Я новичок в Perl, так что простите меня, если это похоже на простой вопрос...
Во всяком случае, у меня есть хэш массивов, и я пытаюсь получить один из массивов в хэше, но все, что я могу получить, это скалярный размер массива.
%HoA = a hash of arrays
$key = some key in the hash
foreach $nextItem (@HoA{$key}) {
do a bunch of stuff with $nextItem
}
Когда я это делаю, $nextItem всегда равен размеру массива, и цикл работает только один раз. Я пробовал напечатать следующее:
@HoA{$key}
$HoA{$key}
@$HoA{$key}
Первые два дают мне скалярный размер, а третий ничего мне не дает... что мне здесь не хватает?
UPDATE: Мне интересно, действительно ли моя проблема заключается в том, как я добавляю массивы в хэш. Вот что я делаю:
@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;
Почему это только приклеивание первого значения массива в?