Иногда код лучше всего объяснить на примере.
Данный файл содержит следующую строку:
AA:BB CC:DD CC:DD UNIMPORTANT_COL ID
Хеш %result
будет выглядеть так:
(
ID => {
AA => 'BB',
CC => 'DD',
},
)
Хэш %df
считает количество уникальных экземпляров:
(
AA => 1,
CC => 2,
)
Дополнительные комментарии
$#row
- последний индекс @row
, который равен 4 в приведенном выше примере. Это означает, что $row[$#row]
можно было бы использовать вместо $row[-1]
- Было бы яснее написать
my ( $key, $value ) = split /:/, $group;
и использовать их вместо $group[0]
и $group[1]
- Переменная
$i
здесь не очень полезна. Попробуйте использовать foreach my $group ( @group[0..$#group-2]) {
вместо