【发布时间】:2009-12-16 13:43:15
【问题描述】:
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 行保持共享。
再见。
显然它有效,我可以在 END 块内使用 no
warnings 抑制警告。但我想知道是否有更好的方法
如何做到这一点。
我尝试使用这样的匿名子:
my $cleanup = sub { $self->goodbye() };
END { $cleanup->() };
然后像这样:
END { sub { $self->goodbye() }->() };
但我总是收到同样的警告。
【问题讨论】:
标签: perl perl-module