我尝试了以下
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设置为''更改过滤器对“线”是什么的理解?
答案 0 :(得分:0)
首先,您正在阅读过滤器,因此InputLiteral
在这里很重要,而不是OutputLiteral.
其次,您不能有空InputLiteral
(如果您尝试,它只会自动检测输入文字)。因此,您无法使用POE::Filter::Line
来获取所有数据,因为它是用于解析以行终止的记录。请改用POE::Filter::Stream
。