Perl 如何使用AnyEvent侦听读和写事件? $w=AnyEvent->io( fh=>,, 投票=>,, cb=>,, );

Perl 如何使用AnyEvent侦听读和写事件? $w=AnyEvent->io( fh=>,, 投票=>,, cb=>,, );,perl,event-handling,Perl,Event Handling,似乎是说它只能监听读或写事件 如何侦听这两个事件?在同一个文件句柄上安装两个不同的监视程序:r和w $w = AnyEvent->io ( fh => <filehandle_or_fileno>, poll => <"r" or "w">, cb => <callback>, ); 第一个cb会被覆盖吗?你为什么不试试呢?我用简单的例子更新了我的答案。你可以根据自己的需要采用它

似乎是说它只能监听读或写事件


如何侦听这两个事件?

在同一个文件句柄上安装两个不同的监视程序:r和w

   $w = AnyEvent->io (
      fh   => <filehandle_or_fileno>,
      poll => <"r" or "w">,
      cb   => <callback>,
   );

第一个
cb
会被覆盖吗?你为什么不试试呢?我用简单的例子更新了我的答案。你可以根据自己的需要采用它。您可以根据需要在对象上安装任意数量的监视程序。
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;

use AnyEvent;

open my $FH, '+>','test' or die $!;

my $w; $w = AnyEvent->io (
    fh   => $FH,
    poll => "w",
    cb   => sub { say "I can write!"; undef $w; },
);

my $r; $r = AnyEvent->io (
    fh   => $FH,
    poll => "r",
    cb   => sub { say "I can read!"; undef $r; },
);

AnyEvent->condvar->recv;