Create an iterator. Expects one argument containing a hashref of the form:
command => \@command_to_execute
merge => $attempt_merge_stderr_and_stdout?
setup => $callback_to_setup_command
teardown => $callback_to_teardown_command
Tries to uses IPC::Open3 & IO::Select to communicate with the spawned
process if they are available. Falls back onto open().
Iterate through the process output, of course.
Iterate raw input without applying any fixes for quirky input syntax.
Get the wait status for this iterators process.
Get the exit status for this iterators process.
Upgrade the input stream to handle UTF8.
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.