Вместо asort , используйте asorti(source, destination)
, который сортирует индексы в новый массив, и вам не нужно будет копировать массив.
Затем вы можете использовать целевой массив в качестве указателей на исходный массив.
Для вашего примера вы бы использовали его так:
n=asorti(chr_count, sorted)
for (i=1; i<=n; i++) {
print sorted[i] " : " chr_count[sorted[i]]
}