while ( my ( $k, $v ) = each( %h ) ) { ... } #### while ( my ( $k, $v ) = each( %{ create_new_hash() } ) ) { ... } #### while ( my ( $k, $v ) = each( %h ) ) { ... } #### my $iter = get_iter( \%hash ); while ( my ( $k, $v ) = $iter->() ) { ... } #### using ( var iter = dict.GetEnumerator() ) { while ( iter.MoveNext() ) { var entry = iter.Current; ... } } #### foreach ( var entry in dict ) { ... }