我看到一些可怕的
代码写在Perl,但我不能使头或尾的这一个:
select((select(s),$|=1)[0])
它是在一些网络代码,我们用于与服务器通信,我认为它是与缓冲(因为它设置$ |)。
但我不知道为什么有多个选择调用或数组引用。谁能帮我吗?
这是一个讨厌的小习惯用于设置
文件句柄而不是STDOUT的
自动刷新。
select()接受提供的文件句柄,并且(基本上)用它替换STDOUT,当它完成后,它返回旧的文件句柄。
所以(select($ s),$ | = 1)重定向文件句柄(记住select返回旧的),并设置autoflush($ | = 1)。它在列表((…)[0])中执行此操作,并返回第一个值(它是select调用的结果 – 原始STDOUT),然后将其传递回另一个选择以恢复原始STDOUT文件句柄。 。。
但现在你明白了(好吧,也许;)),这样做:
use IO::Handle;
$fh->autoflush;
原文链接:https://www.f2er.com/Perl/173362.html