【发布时间】:2010-11-22 01:14:48
【问题描述】:
我有一个 Perl 脚本,它通过Win32::Process 在新控制台中启动另一个 Perl 脚本,如下所示:
Win32::Process::Create($ProcessObj,
"C:\\Perl\\bin\\perl.exe",
"$path_to_other_perl_script",
0,
NEW_CONSOLE,
".");
$ProcessObj->Suspend();
$ProcessObj->Resume();
$ProcessObj->Wait(0);
问题是,创建的新控制台中没有标准输出。如果我不使用新的控制台选项,脚本会在后台静默运行。
如果我使用 cmd.exe 启动 Perl 脚本,我可以看到输出正常,但现在我无法通过 Win32::Process 控制子 Perl 脚本。
有人有有效的解决方案吗?
【问题讨论】:
-
我使用 Win32::Process 生成大量 perl 进程,并发现使用 Log4perl 进行日志记录优于写入控制台输出。