我有两个单独的脚本,我尝试使用管道机制(例如open($ fh,' - |',“。/ monitor)从另一个脚本(父进程)开始执行一个脚本(子进程) .pl“)这里monitor.pl是子进程,它们都是异步执行的。由于这个原因缓冲区被填满,因此将子进程的while循环内的命令输出连续写入管道句柄。所以请建议我刷新缓冲区的机制和适当的位置,以便子进程永远不会挂起缓冲区填满。
答案 0 :(得分:1)
请参阅IO::Handle。
写完后自动刷新:
$fh->autoflush(1);
手动冲洗:
$fh->flush;
在低于5.14
的Perl版本上,您还需要加载IO :: Handle模块:
use IO::Handle qw();