以下是我的代码:
sub test_ms {
my $coderef1 = shift;
my $coderef2 = shift;
if (fork() == 0) {
&$coderef1;
exit;
}
&$coderef2;
}
当我运行时,我收到错误
免费错误的游泳池2608aa8而不是6d3fe8在test.pl
为什么我收到此错误?
答案 0 :(得分:2)
在Windows上fork()系统调用不可用
这就是为什么它不按预期工作的原因。尝试使用Win32::Process::Create
。
见:
答案 1 :(得分:0)
该消息表示由一个线程(或解释器?)分配的标量(或数组或......)被另一个线程释放。 fork
在Windows上创建线程而不是进程。这可能是因为$Excel
中的对象在线程之间传递是不安全的。在您要使用它的线程中创建$Excel
。