Функция each.
Для выполнения цикла над всем хешем можно использовать функцию keys, но есть более эффективный способ - функция each(%hash_name), которая возвращает пару ключ-значение как двухэлементный список. При каждом вычислении этой функции для одного хеша возвращяется очередная пара, пока не будут перебраны все элементы. Если пар больше нет, возвращается пустой список.
while(($first, $last) = each(%test)) { print "The value of $first is $last"; }