use strict; use warnings; my $limit = 5; printLimit($limit); sub printLimit { my $limit = shift; my $i = q{xyz}; print qq{outside foreach: $i\n}; foreach $i ( 1 .. $limit ) { print qq{ inside foreach: $i\n}; } print qq{outside foreach: $i\n}; } #### outside foreach: xyz inside foreach: 1 inside foreach: 2 inside foreach: 3 inside foreach: 4 inside foreach: 5 outside foreach: xyz #### foreach my $i ( ... ) { ... }