循環我有陣列的散列,如下所示:通過陣列的散列在Perl
my %hash = (
234 => ["Larry", "Curly", "Moe"],
235 => ["bb", "ab", "aa", "ab", "bb"],
236 => ["aa", "ab", "bb", "aa", "bb"],
)
對於我的散列每個鍵,我想通過陣列的每個元素環,賦值給一個標量變量,以便我可以處理它,然後移動到數組的下一個元素。一旦我已處理的陣列的密鑰的所有元素,我要到下一個鍵和單獨地處理所有其數組的元素的,依此類推。
我發現,改性的代碼片段在散列值迭代(每個鍵的在這種情況下,數組)。然後我有一個嵌套的for循環,遍歷該數組的每個元素。但是,這並沒有達到我期望的水平。
for my $value (values %hash) {
for (@$value) {
my $index = shift($_);
#process index
}
}
錯誤消息 未在[行號]
例如數組引用,對於第一次迭代,我想$index
等於Larry
這樣我可以處理它。下一次迭代,我想$index
平等Curly
,這樣我可以處理它。下一次迭代,$index
應該等於Moe
,對其進行處理。下一次迭代,$index
應等於bb
,等等。
有可能比shift
更好的功能。 shift
函數將第一個元素從數組中取出。我希望數組散列保留其值,以便我不必重新填充數組的散列。
感謝