Это может быть простой надзор с моей стороны (или что-то гораздо более продвинутое, чем мой набор навыков). Я пытаюсь динамически заполнить 2d ассоциативный массив, читая ввод из файла.Perl Динамически генерируемый многомерный ассоциативный массив
my @data;
while (<FILE>) {
chomp;
my $ID,$COUNT;
print "READ: " . $_ . "\n"; #Debug 1
($ID,$COUNT,undef,undef,undef) = split /\,/;
print "DATA: " . $ID . "," . $COUNT . "\n"; # Debug 2
$data{$ID}{"count"} = $COUNT;
#push @{$data{$ID}{"count"}}, $COUNT;
print $data{$ID}{"count"} . "\n"; # Debug 3
}
Первая печать (отладка 1) напечатает строку, похожую на des313,3 ,,,.
Вторая печать (отладка 2) будет печатать линию передачи данных: des313,3
Третья печать (3) отладка будет печатать пустую строку.
Проблема, кажется, в том, что я пытаюсь вставить данные в ассоциативный массив. Я пробовал как прямую вставку, так и метод push без каких-либо результатов. Я сделал это с PHP, но я думаю, что я не замечаю этого в Perl. Я просмотрел страницу perldoc perldsc в разделе HASHES из HASHES, однако я не видел, чтобы она говорила о динамической генерации их. Любые предложения были бы замечательными!
Хотя это может быть улучшен код отлично работает для меня, как она стоит. Третья строка отладки правильно печатает сохраненное значение $ COUNT. Повторите этот код и сообщите нам, какие результаты вы получите, и содержимое файла данных, который вы используете. – Borodin
Если вы изучаете Perl из источника, который использует термин «ассоциативный массив», то он почти наверняка устарел. Пожалуйста, найдите то, что не старше 15 лет. –