while (($s_pattern,$p_pattern) = each %{$patterns{$gen}}) { # ... }