knoppix@Microknoppix:~$ perl -Mstrict -wE ' > my %hash = ( > one => q{ein}, > two => q{zwei}, > six => q{sechs}, > ); > say qq{@{ [ %hash ] }}; > for ( 1 .. 9 ) > { > my ( $k, $v ) = each %hash || each %hash; > say qq{$_: $k => $v} > }' six sechs one ein two zwei Use of uninitialized value $v in concatenation (.) or string at -e line 11. 1: six => Use of uninitialized value $v in concatenation (.) or string at -e line 11. 2: one => Use of uninitialized value $v in concatenation (.) or string at -e line 11. 3: two => 4: six => sechs Use of uninitialized value $v in concatenation (.) or string at -e line 11. 5: one => Use of uninitialized value $v in concatenation (.) or string at -e line 11. 6: two => 7: six => sechs Use of uninitialized value $v in concatenation (.) or string at -e line 11. 8: one => Use of uninitialized value $v in concatenation (.) or string at -e line 11. 9: two => knoppix@Microknoppix:~$ #### knoppix@Microknoppix:~$ perl -Mstrict -wE ' > my %hash = ( > one => q{ein}, > two => q{zwei}, > six => q{sechs}, > ); > say qq{@{ [ %hash ] }}; > my $ct; > for ( 1 .. 3 ) > { > while ( my ( $k, $v ) = each %hash ) > { > $ct ++; > say qq{$ct: $k => $v} > } > }' six sechs one ein two zwei 1: six => sechs 2: one => ein 3: two => zwei 4: six => sechs 5: one => ein 6: two => zwei 7: six => sechs 8: one => ein 9: two => zwei knoppix@Microknoppix:~$