foreach my $color (@colors) { ... } #### my $color; #### use strict; my @colors = qw ( red green blue ); our $color; # our makes it work, my doesn't foreach $color (@colors) { print "\$color is '$color' in loop, "; too_lazy_to_code_passing_parameter(); } #### sub too_lazy_to_code_passing_parameter { print " in sub value is '$color'\n"; } $color is 'red' in loop, in sub value is 'red' $color is 'green' in loop, in sub value is 'green' $color is 'blue' in loop, in sub value is 'blue'