# phpman > info > TAP::Parser::SourceHandler::Handle

[TAP::Parser::SourceHandPerl](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandPerl/markdown):[ProgrammeTAP::Parser::SourceHandler](https://www.chedong.com/phpMan.php/perldoc/ProgrammeTAP%3A%3AParser%3A%3ASourceHandler/markdown)::[Handle(3perl)](https://www.chedong.com/phpMan.php/man/Handle/3perl/markdown)

NAME
       [TAP::Parser::SourceHandler::Handle](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3AHandle/markdown) - Stream TAP from an [IO::Handle](https://www.chedong.com/phpMan.php/perldoc/IO%3A%3AHandle/markdown) or a
       GLOB.

VERSION
       Version 3.43

SYNOPSIS
         use [TAP::Parser::Source](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASource/markdown);
         use [TAP::Parser::SourceHandler::Executable](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3AExecutable/markdown);

         my $source = [TAP::Parser::Source](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASource/markdown)->new->raw( \*TAP_FILE );
         $source->assemble_meta;

         my $class = '[TAP::Parser::SourceHandler::Handle](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3AHandle/markdown)';
         my $vote  = $class->can_handle( $source );
         my $iter  = $class->make_iterator( $source );

DESCRIPTION
       This is a raw TAP stored in an IO Handle [TAP::Parser::SourceHandler](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler/markdown)
       class.  It has 2 jobs:

       1. Figure out if the [TAP::Parser::Source](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASource/markdown) it's given is an [IO::Handle](https://www.chedong.com/phpMan.php/perldoc/IO%3A%3AHandle/markdown) or
       GLOB containing raw TAP output ("can_handle").

       2. Creates an iterator for [IO::Handle](https://www.chedong.com/phpMan.php/perldoc/IO%3A%3AHandle/markdown)'s & globs ("make_iterator").

       Unless you're writing a plugin or subclassing [TAP::Parser](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser/markdown), you probably
       won't need to use this module directly.

METHODS
   Class Methods
       "can_handle"

         my $vote = $class->can_handle( $source );

       Casts the following votes:

         0.9 if $source is an [IO::Handle](https://www.chedong.com/phpMan.php/perldoc/IO%3A%3AHandle/markdown)
         0.8 if $source is a glob

       "make_iterator"

         my $iterator = $class->make_iterator( $source );

       Returns a new [TAP::Parser::Iterator::Stream](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3AIterator%3A%3AStream/markdown) for the source.

       "iterator_class"

       The class of iterator to use, override if you're sub-classing.
       Defaults to [TAP::Parser::Iterator::Stream](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3AIterator%3A%3AStream/markdown).

SUBCLASSING
       Please see "SUBCLASSING" in [TAP::Parser](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser/markdown) for a subclassing overview.

SEE ALSO
       [TAP::Object](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AObject/markdown), [TAP::Parser](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser/markdown), [TAP::Parser::Iterator](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3AIterator/markdown),
       [TAP::Parser::Iterator::Stream](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3AIterator%3A%3AStream/markdown), [TAP::Parser::IteratorFactory](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3AIteratorFactory/markdown),
       [TAP::Parser::SourceHandler](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler/markdown), [TAP::Parser::SourceHandler::Executable](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3AExecutable/markdown),
       [TAP::Parser::SourceHandler::Perl](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3APerl/markdown), [TAP::Parser::SourceHandler::File](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3AFile/markdown),
       [TAP::Parser::SourceHandler::RawTAP](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3ARawTAP/markdown)

perl v5.34.0                      [202TAP::Parser::SourceHandler](https://www.chedong.com/phpMan.php/perldoc/202TAP%3A%3AParser%3A%3ASourceHandler/markdown)::[Handle(3perl)](https://www.chedong.com/phpMan.php/man/Handle/3perl/markdown)
