可以說我有一個返回哈希結果的子例程。我想迭代來自父目錄中子例程的鍵/值對,並且不想將結果保存到變量中。簡單的perl迭代通過一行中的子例程返回的哈希?
這看起來很簡單,但我不知道如何去做。如果方法返回散列,我不知道告訴循環期望從方法返回散列的語法。如果該方法返回一個hashref我可以做
while(my($key,$value) = each (%{ generate_hash() })
但這重新運行generate_hash()方法中的每個時間循環完成後,再生相同的散列,並再處理的散列的所述第一元件(或至少它在5.10確實5.14允許每個採取可能解決這個問題,不知道一個標量,但我限制在5.10黯然。
誰能解釋我缺少什麼荒謬明顯的語法在這裏?
「和不喜歡先保存結果的變量。」這實際上是降低代碼可讀性的一個不好的理由。 – ThisSuitIsBlackNot
我不確定您可以在指定的限制範圍內執行此操作。要迭代一個散列,你真的需要'keys'或'each',在這兩種情況下你都需要'訪問'散列兩次。 (我想你可以在一次迭代中迭代一個元素,但是你仍然需要使用var來再次將它們粘在一起) – Sobrique