TAP::Parser::Iterator(3p)

TAP::Parser::Iterator3p

Base class for tap source iterators

Usage

  # to subclass:
  use TAP::Parser::Iterator ();
  use base 'TAP::Parser::Iterator';
  sub _initialize {
    # see TAP::Object...
  }
  sub next_raw { ... }
  sub wait     { ... }
  sub exit     { ... }

Version

Version 3.50

Overview

This is a simple iterator base class that defines TAP::Parser's iterator API. Iterators are typically created from TAP::Parser::SourceHandlers.

Methods

Class Methods

"new"

Create an iterator. Provided by TAP::Object.

Instance Methods

"next"

 while ( my $item = $iter->next ) { ... }

Iterate through it, of course.

"next_raw"

Note: this method is abstract and should be overridden.

 while ( my $item = $iter->next_raw ) { ... }

Iterate raw input without applying any fixes for quirky input syntax.

"handle_unicode"

If necessary switch the input stream to handle unicode. This only has any effect for I/O handle based streams.

The default implementation does nothing.

"get_select_handles"

Return a list of filehandles that may be used upstream in a select() call to signal that this Iterator is ready. Iterators that are not handle-based should return an empty list.

The default implementation does nothing.

"wait"

Note: this method is abstract and should be overridden.

 my $wait_status = $iter->wait;

Return the "wait" status for this iterator.

"exit"

Note: this method is abstract and should be overridden.

 my $wait_status = $iter->exit;

Return the "exit" status for this iterator.

Subclassing

Please see "SUBCLASSING" in TAP::Parser for a subclassing overview.

You must override the abstract methods as noted above.

Example

TAP::Parser::Iterator::Array is probably the easiest example to follow. There's not much point repeating it here.

Releases

32 releases since OpenBSD 5.0; the text changed 20 times.

  1. 5.0–5.3
  2. 5.4–5.5
  3. 5.6
  4. 5.7
  5. 5.8–5.9
  6. 6.0
  7. 6.1
  8. 6.2
  9. 6.3–6.4
  10. 6.5
  11. 6.6
  12. 6.7
  13. 6.8
  14. 6.9–7.2
  15. 7.3
  16. 7.4
  17. 7.5
  18. 7.6
  19. 7.7–7.8
  20. 7.9
  21. 8.0

From man 8.0-current-20261101 in OpenBSD 8.0-current (2026-11-01). Parsed by carta from the page's man source.