what does $vectors{ $dat[$Row][$j] } stand for?
$dat[$Row]
является ссылкой на массив. $dat[$Row][$j]
, очевидно, является элементом в этом массиве. Независимо от значения, содержащегося в нем, он становится хеш-ключом в %vectors
, который получает значение $j
.
Is that equivalent $vectors->$dat[$Row][$j]
Нет, это будет относиться к переменной $vectors
, а не %vectors
.
Более читабельный способ написать это может быть:
my $aref = $dat[$Row];
for my $index (keys @$aref) {
my $key = $aref->[$index];
$vectors{$key} = $index;
}
Что также иллюстрирует использование ->
для разыменования ссылки.