my @colors=qw(red blue green yellow orange purple violet); print "----- my \$x; for \$x ... ---------\n"; my $x; foreach $x (@colors) { no strict 'refs'; my $name=$x; *{$x.'_0'}=sub { $x="$x|$x"; print "doubling \$x: <$x>\n"; }; } $x="x"; print "set \$x to 'x'\n"; print "\$colors[0]=<$colors[0]> \$x=<$x>\n"; red_0(); print "\$colors[0]=<$colors[0]> \$x=<$x>\n"; $colors[0]='RED'; print "setting \$colors[0] to 'RED'\n"; red_0();