TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers
Version 3.00
use TAP::Parser::Multiplexer; my $mux = TAP::Parser::Multiplexer->new; $mux->add( $parser1, $stash1 ); $mux->add( $parser2, $stash2 ); while ( my ( $parser, $stash, $result ) = $mux->next ) { # do stuff }
TAP::Parser::Multiplexer gathers input from multiple TAP::Parsers. Internally it calls select on the input file handles for those parsers to wait for one or more of them to have input available.
TAP::Parser::Multiplexer
See TAP::Harness for an example of its use.
new
my $mux = TAP::Parser::Multiplexer->new;
Returns a new TAP::Parser::Multiplexer object.
add
$mux->add( $parser, $stash );
Add a TAP::Parser to the multiplexer. $stash is an optional opaque reference that will be returned from next along with the parser and the next result.
$stash
next
parsers
my $count = $mux->parsers;
Returns the number of parsers. Parsers are removed from the multiplexer when their input is exhausted.
Return a result from the next available parser. Returns a list containing the parser from which the result came, the stash that corresponds with that parser and the result.
my ( $parser, $stash, $result ) = $mux->next;
If $result is undefined the corresponding parser has reached the end of its input (and will automatically be removed from the multiplexer).
$result
When all parsers are exhausted an empty list will be returned.
if ( my ( $parser, $stash, $result ) = $mux->next ) { if ( ! defined $result ) { # End of this parser } else { # Process result } } else { # All parsers finished }
TAP::Parser
TAP::Harness
To install Test::Harness, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::Harness
CPAN shell
perl -MCPAN -e shell install Test::Harness
For more information on module installation, please visit the detailed CPAN module installation guide.