Допустим, у меня есть подпрограмма, которая возвращает результат хеширования. Я хочу перебрать пару ключ / значение из подпрограммы в моем родительском каталоге, и мне не хочется сначала сохранять результат в переменной.
Это кажется простым, но я вообще не знаю, как это сделать. Если метод возвращает хэш, я не знаю синтаксиса, необходимого для указания циклу ожидать, что хеш будет возвращен из метода. Если метод возвращает хэш-ссылку, я могу сделать
while( my($key,$value) = each ( %{ generate_hash() } )
но это повторно запускает метод generate_hash () каждый раз, когда цикл завершается, восстанавливая один и тот же хэш и повторно обрабатывая первый элемент хэша (или, по крайней мере, в 5.10. 5.14 позволяет каждому взять скаляр, который может решить проблему, не уверен , но, к сожалению, я ограничен 5.10.
Может ли кто-нибудь объяснить, какой абсурдно очевидный синтаксис мне здесь не хватает?
keys
илиeach
, и в обоих случаях вам нужно дважды «получить доступ» к хешу. (Я полагаю, вы могли бы в крайнем случае повторять один элемент за раз, но тогда вам все равно нужно будет использовать var, чтобы снова склеить их) - person Sobrique   schedule 29.12.2015