Perl缓冲区刷新

Perl缓冲区刷新,perl,Perl,我有两个单独的脚本,我正试图使用管道机制(如open($fh),-|',“/monitor.pl”)从另一个脚本(父进程)启动一个脚本(子进程)的执行。这里monitor.pl是子进程,它们都是异步同时执行的。放置在子进程while循环中的命令的输出会连续写入管道句柄,原因是缓冲区被填满。因此,请建议我刷新缓冲区的机制和适当位置,这样子进程就不会在缓冲区填满时挂起 见 写入后自动刷新: $fh->autoflush(1); 手动刷新: $fh->flush; 在低于5.14的Pe

我有两个单独的脚本,我正试图使用管道机制(如open($fh),-|',“/monitor.pl”)从另一个脚本(父进程)启动一个脚本(子进程)的执行。这里monitor.pl是子进程,它们都是异步同时执行的。放置在子进程while循环中的命令的输出会连续写入管道句柄,原因是缓冲区被填满。因此,请建议我刷新缓冲区的机制和适当位置,这样子进程就不会在缓冲区填满时挂起

写入后自动刷新:

$fh->autoflush(1);
手动刷新:

$fh->flush;
在低于
5.14
的Perl版本上,还需要加载IO::Handle模块:

use IO::Handle qw();

写入后自动刷新:

$fh->autoflush(1);
手动刷新:

$fh->flush;
在低于
5.14
的Perl版本上,还需要加载IO::Handle模块:

use IO::Handle qw();

您是否在父进程中读取$fh?是,在父进程中读取$fh。请。你能给我建议一些机制吗?那么孩子在提供数据方面比家长在读取和处理数据方面更快?可能是……不确定…………好吧,如果是这样的话,那么你需要家长和孩子之间的某种机制来缓冲孩子的输出。当然,只有在某些时段,子进程不会产生较少的输出时,这才有效……您是否在父进程中读取$fh?是的,在父进程中读取$fh。请。你能给我建议一些机制吗?那么孩子在提供数据方面比家长在读取和处理数据方面更快?可能是……不确定…………好吧,如果是这样的话,那么你需要家长和孩子之间的某种机制来缓冲孩子的输出。当然,只有在某些时段,child不会产生更少的输出时,这才有效……我应该使用这个语句$fh->autoflush(1);在像这样打开管道之后,
code
open($fh',-|',“/monitor.pl”)$跳频->自动刷新(1)<代码>代码上述机制在我的脚本场景中不起作用。子进程monitor.pl的执行是通过从父进程使用此管道机制open($fh、-|'、“/monitor.pl”)启动的。父进程可能会执行几个小时,而子进程也必须执行,只要父进程异步执行,但子进程在50分钟后挂起。我希望只要父进程执行,子进程就应该写入管道句柄,这可能需要2-3个小时。请。向我建议任何能帮助我的机制。提前感谢。7Srv,以及您后续问题的文本。我应该在哪里使用此语句$fh->autoflush(1);在像这样打开管道之后,
code
open($fh',-|',“/monitor.pl”)$跳频->自动刷新(1)<代码>代码上述机制在我的脚本场景中不起作用。子进程monitor.pl的执行是通过从父进程使用此管道机制open($fh、-|'、“/monitor.pl”)启动的。父进程可能会执行几个小时,而子进程也必须执行,只要父进程异步执行,但子进程在50分钟后挂起。我希望只要父进程执行,子进程就应该写入管道句柄,这可能需要2-3个小时。请。向我建议任何能帮助我的机制。提前感谢。7Srv,随附您后续问题的文本。