Как для хэшей, так и для массивов на данном ключе может храниться только один скаляр. («Ключи являются уникальными.») Если бы они не были, вы не могли бы сделать
$h{a} = 1;
$h{a} = 2;
$val = $h{a}; # 2
$a[4] = 1;
$a[4] = 2;
$val = $a[4]; # 2
Если вы хотите связать несколько значений с ключом, вы можете поместить ссылку на массив (или хеш) в этом ключе и добавить значение в этот массив (или хеш).
for my $n (4,5,6,10) {
if ($n % 2) {
push @{ $nums{odd} }, $n;
} else {
push @{ $nums{even} }, $n;
}
}
say join ', ', @{ $nums{even} };
Подробнее об этом см. perllol .
Что касается значений, у нескольких элементов может быть одинаковое значение как в хэшах, так и в массивах.
$counts{a} = 3;
$counts{b} = 3;
$counts[5] = 3;
$counts[6] = 3;