Edit:
Хотя нормальный хэш имеет последовательный порядок, в случае tied hash порядок ключей не определен, как это контролируемый пользователь!
Хотя порядок хеш-ключей не изменяется, вероятно, вам следует пересмотреть, зачем вам это нужно.
Возможно, вы можете обработать хэш за один проход вместо двух?
Вы должны сохранить ключи хэша в массив как защитную практику программирования, если размер данных не будет достаточно большим, чтобы дублирование было проблемой. В качестве бонуса вы можете даже отсортировать список легко и обрабатывать хэш в четко определенном порядке. НАПРИМЕР,
my @keys = sort keys %myHash;
Это позволяет избежать каких-либо проблем с модификацией хэша, так как ваш заказ массив никогда не изменится, если вы не хотите.
Если вы этого не сделаете, вам нужно быть очень осторожным, чтобы не делать ничего, что меняет хэш, иначе порядок элементов изменится. Посмотрите на модуль Readonly, чтобы этот хэш никогда не менялся.
Просто из любопытства - для чего вам нужно это имущество? – hillu
Кто голосует за все и что угодно? – erjiang