foreach $hash{key} (@array){ ## The value of $hash{key} will be the $array[x] value. ## ... } #### my %hash = ( key => 'value'); my $k_ref = \$hash{key} ; *{'main::val'} = $k_ref ; ## To avoid $$k_ref print "val: <$val>\n" ; print "key: <$hash{key}>\n" ; $val = 'test' ; print "val: <$val>\n" ; print "key: <$hash{key}>\n" ; #### my %hash = ( key => 'value'); my $k_ref = \$hash{key} ; *{'main::val'} = $k_ref ; my @array = (0..5) ; print "val: <$val>\n" ; print "key: <$hash{key}>\n" ; foreach $val ( @array ) { print "for>> val: <$val>\n" ; print "for>> key: <$hash{key}>\n" ; } print "val: <$val>\n" ; print "key: <$hash{key}>\n" ; #### for>> val: <0> for>> key: for>> val: <1> for>> key: for>> val: <2> for>> key: ... #### for>> val: <0> for>> key: <0> for>> val: <1> for>> key: <1> for>> val: <2> for>> key: <2> ... #### my @array = (1..5) ; print "@array\n" ; foreach my $array_i ( @array ) { $array_i *= 10 ;} print "@array\n" ; #### my %hash = ( key => 'value'); my @array = (0..5) ; foreach my $val ( @array ) { $hash{key} = $val ; print "for>> val: <$val>\n" ; print "for>> key: <$hash{key}>\n" ; }