TAP::Parser::Iterator - TAP 源迭代器的基类
版本 3.44
# to subclass:
use TAP::Parser::Iterator ();
use base 'TAP::Parser::Iterator';
sub _initialize {
# see TAP::Object...
}
sub next_raw { ... }
sub wait { ... }
sub exit { ... }
这是一个简单的迭代器基类,它定义了 TAP::Parser 的迭代器 API。迭代器通常由 TAP::Parser::SourceHandler 创建。
new
创建一个迭代器。由 TAP::Object 提供。
next
while ( my $item = $iter->next ) { ... }
当然,遍历它。
next_raw
注意:此方法是抽象的,应该被覆盖。
while ( my $item = $iter->next_raw ) { ... }
遍历原始输入,不应用任何修复以解决奇特的输入语法。
handle_unicode
如有必要,切换输入流以处理 Unicode。这仅对基于 I/O 句柄的流有任何影响。
默认实现什么也不做。
get_select_handles
返回一个文件句柄列表,可以在 select() 调用中上游使用,以指示此 Iterator 已准备就绪。非基于句柄的 Iterator 应该返回一个空列表。
默认实现什么也不做。
wait
注意:此方法是抽象的,应该被覆盖。
my $wait_status = $iter->wait;
返回此 Iterator 的wait
状态。
exit
注意:此方法是抽象的,应该被覆盖。
my $wait_status = $iter->exit;
返回此 Iterator 的exit
状态。
有关子类化的概述,请参阅TAP::Parser 中的“SUBCLASSING”。
您必须覆盖如上所述的抽象方法。
TAP::Parser::Iterator::Array 可能是最容易遵循的示例。在这里重复它没有多大意义。
TAP::Object、TAP::Parser、TAP::Parser::Iterator::Array、TAP::Parser::Iterator::Stream、TAP::Parser::Iterator::Process,