package JustTesting;
use strict;
use warnings;
sub new {
my $self = {};
bless($self, shift);
END { $self->goodbye() };
return $self;
}
sub goodbye {
print "Goodbye.\n";
}
package main;
my $this = JustTesting->new();
输出:
变量“$self”不会在 ./test 第 10 行保持共享。
再见。
显然它有效,我可以no
warnings
在 END 块内抑制警告。但我想知道是否有更好的方法来做到这一点。
我尝试使用这样的匿名子:
my $cleanup = sub { $self->goodbye() };
END { $cleanup->() };
然后像这样:
END { sub { $self->goodbye() }->() };
但我总是得到同样的警告。