use strict; use warnings; BEGIN { package My::Guard; sub new {} } { my $sth; my $guard1 = My::Guard->new(sub { $sth->finish }); my $guard2 = My::Guard->new(sub { $guard1; }); }