0

我尝试了以下

my $filter = POE::Filter::Line->new(OutputLiteral => '');

my $wheel = POE::Wheel::ReadWrite->new(
    Handle       => $socket,
    Filter       => $filter,
    InputEvent   => 'on_input',
    ErrorEvent   => 'on_error',
    FlushedEvent => 'on_flush',
);

但是 on_input 在 ARG0 中的每一行分别被调用了几次。我怎样才能把它们放在一起?将 OutputLiteral 设置为 '' 不会改变过滤器对“线”的理解吗?

4

1 回答 1

0

首先,您正在从过滤器中读取,所以InputLiteral这很重要,而不是OutputLiteral.第二,您不能有空InputLiteral(如果您尝试,它只会自动检测输入文字)。因此,您不能使用它POE::Filter::Line来获取所有数据,因为它是为解析行终止记录而设计的。改为使用POE::Filter::Stream

于 2011-07-07T18:27:40.063 回答