Если вам не нужно заниматься чем-то другим, вы проделаете очень долгий путь ...
print join(", ", sort { $a <=> $b } keys %totals);
join
объединяет массив, используя разделитель, заданный в качестве первого аргумента, что идеально подходит для того, что вы ищете.
UPDATE
Мое решение работает, вам нужно предоставить больше информации в вашем вопросе.
Добавьте ключи в массив и распечатайте их, когда вы закончите, т. Е .:
my @keys;
foreach my $cmp_id (sort { $a <=> $b } keys %totals){
push @keys, $cmp_id;
... other processing
}
print join(", ", @keys);