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

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

NAME
       [TAP::Parser::SourceHandler::File](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3AFile/markdown) - Stream TAP from a text file.

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::File](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3AFile/markdown);

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

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

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

       1. Figure out if the raw source it's given is a file containing raw TAP
       output.  See [TAP::Parser::IteratorFactory](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3AIteratorFactory/markdown) for more details.

       2. Takes raw TAP from the text file given, and converts into an
       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 );

       Only votes if $source looks like a regular file.  Casts the following
       votes:

         0.9 if it's a .tap file
         0.9 if it has an extension matching any given in user config.

       "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.  "croak"s
       on error.

       "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).

CONFIGURATION
         {
          extensions => [ @case_insensitive_exts_to_match ]
         }

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::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::Handle](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3AHandle/markdown),
       [TAP::Parser::SourceHandler::RawTAP](https://www.chedong.com/phpMan.php/perldoc/TAP%3A%3AParser%3A%3ASourceHandler%3A%3ARawTAP/markdown)

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