经过1分钟的测试,答案似乎是:是的 否(请参阅下面的更新)
top在运行时观察,%MEM不断增加
{
THIS:
my $x = 1;
goto THIS;
}
Run Code Online (Sandbox Code Playgroud)
这不显示相同的递增%MEM计数器
while (1) {
my $x = 1;
}
Run Code Online (Sandbox Code Playgroud)
更新
我误解了这个问题。我对这个问题的看法是,是否会使用 a 为该词法范围中已经存在的词法变量分配内存goto,而我的测试似乎表明是的。严格来说,这并不是内存泄漏。如果 perl 退出这个词法范围,分配的空间将被释放。