我正在Windows上运行一个调用可执行文件的Perl脚本:
$command = "$path_to_exe -i $dir -o $results";
my $pid = fork();
if ( !$pid ) {
system($command);
#do stuff
} else {
#do stuff
}
print "Exiting..."
exit;
perl.exe没有退出,而是保持空闲状态。然后弹出一个窗口告诉我"Perl命令行解释器已停止工作"。
我对Windows中的进程管理不太了解,在此论坛上我以前读到过使用fork()
和exec()
不是好习惯,但代码除了解释器不关闭部分之外运行良好。我尝试过从Unix中实现程序(这会产生相同的错误)到使用Win32::Process
命令,但都无法解决问题。我希望有一个更简单的解决方案,可以让我保留已经编写的内容。
如果有人能解释一下在运行此代码时Windows发生了什么,那也会有所帮助!