use strict; use warnings; foreach (0, 1) { my $i = $_; my $print = sub { print $i; }; $print->(); # 0,1 } #### use strict; use warnings; my $i; sub my_print { print $i; }; foreach (0, 1) { $i = $_; my_print(); # 0,1 } #### use strict; use warnings; sub my_print { my ($i)=@_; print $i; }; foreach (0, 1) { my_print($_); # 0,1 }