perl如何立即刷新文件缓冲区

前端之家收集整理的这篇文章主要介绍了perl如何立即刷新文件缓冲区前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
perl中如何使缓冲区自动刷新
    

回复 #3 xdwjack 的帖子

  1. perldoc -f select
复制代码

$|这个变量是和对应的文件句柄挂钩的
默认对STDOUT操作
你如果想操作其他文件句柄就要先select,写的tricky一点,比如你想设置$filehadler这一文件句柄的auto flush则
  1. select (select ($filehandler),$|=1)[0];
复制代码

       $|将对当前select的FILEHANDLE起作用,默认是STDOUT。   使用方法如下:   $old = select FILEHANDLE;   $| = 1; #autoflush   select $old;      对某些对象,还可以直接使用autoflush方法方法如下:   use IO::Socket;   $socket = IO::Socket::INET->new(...);   $socket->autoflush(1); #但经过测试,似乎不起作用,不清楚为什么 附:不起作用的原因是使用了类似 $message = <$socket>这样的用法,使用<>应该会等有回车才会返回,导致程序会停在这个语句上。如果使用$socket->recv($message,1000)则没有问题。

猜你在找的Perl相关文章