內容

名稱

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() 呼叫中上游使用,以表示此反覆運算器已準備好。非基於句柄的反覆運算器應傳回一個空清單。

預設實作不執行任何動作。

wait

注意:這個方法是抽象的,應該被覆寫。

my $wait_status = $iter->wait;

傳回此反覆運算器的 wait 狀態。

exit

注意:這個方法是抽象的,應該被覆寫。

my $wait_status = $iter->exit;

傳回此反覆運算器的 exit 狀態。

子類化

請參閱 TAP::Parser 中的「SUBCLASSING」 以取得子類化概觀。

您必須覆寫如上所述的抽象方法。

範例

TAP::Parser::Iterator::Array 可能是最容易遵循的範例。在此重複說明沒有太大意義。

另請參閱

TAP::ObjectTAP::ParserTAP::Parser::Iterator::ArrayTAP::Parser::Iterator::StreamTAP::Parser::Iterator::Process