如何设置我的POE :: Filter以接收从服务器返回的整个数据块?

时间:2011-06-24 04:43:43

标签: perl poe

我尝试了以下

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',
);

但在ARG0中,每行分别调用on_input几次。我怎么一起得到它?不将设置OutputLiteral设置为''更改过滤器对“线”是什么的理解?

1 个答案:

答案 0 :(得分:0)

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