use strict; use warnings; { package Y; sub foo { warn "foo: start"; bar(); warn "foo: end"; } sub bar { warn "bar: start"; package X; use Scope::Upper qw( reap localize :words); reap sub { my $pkg = caller; warn "REAP: $pkg"; } => HERE; sub { my $pkg = caller; warn "FUNC: $pkg"; }->(); warn "bar: end"; } } warn "START"; Y::foo; warn "END"; を実行すると $ perl ./scopeupper.pl START at ./scopeupper.pl lin