微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

perl – 检查文件句柄是否为标准输入

我正在使用带有TCP服务器的select.我想将STDIN添加到选择文件句柄集.

#!/usr/bin/perl

use IO::Select;
use IO::Socket::INET;
my $sock = IO::Socket::INET->new(LocalPort => $serv_listen_port,Proto => 'tcp',List    en=> 1);

my $s = IO::Select->new();
$s->add(\*STDIN); #want to be responsive to user input (allow me to type commands for example)
$s->add($sock);

@readytoread=$s->can_read(1); #timeout = 1sec
foreach $readable (@readytoread) {
  if ($readable==$sock) {
    #This was a listen request,I accept and add new client here
  }
  if ($readable == STDIN){ #what to do on this line?
    #This is user typing input into server on terminal
  }
}

在这里代码中需要第4行到最后一行的帮助.

解决方法

$readable->fileno == fileno STDIN

或者,如果您对此感到满意,则fileno STDIN为零,您可以直接检查.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐