#!/usr/bin/perl use strict; use warnings; sub foo { my $sub = shift; local $_; $sub->(); } $_ = 10; foo (sub { print $_ }); #### #!/usr/bin/perl use strict; use warnings; my $var = 10; foo(sub { print $var }); sub foo { my $sub = shift; undef $var; $sub->(); # unitialized warning }