
Perl::PrereqScanner - a tool to scan your Perl code for its prerequisites

version 1.014

use Perl::PrereqScanner; my $scanner = Perl::PrereqScanner->new; my $prereqs = $scanner->scan_ppi_document( $ppi_doc ); my $prereqs = $scanner->scan_file( $file_path ); my $prereqs = $scanner->scan_string( $perl_code );

The scanner will extract loosely your distribution prerequisites from your files.
The extraction may not be perfect but tries to do its best. It will currently find the following prereqs:
use or require in your perl modules and scripts, including minimum perl versionbase and parent pragmataextends keywordwith keywordaliased modulePerl::PrereqScanner works by running a series of scanners over a PPI::Document representing the code to scan. By default the "Perl5", "Moose", "TestMore", "POE", and "Aliased" scanners are run. You can supply your own scanners when constructing your PrereqScanner:
# Us only the Perl5 scanner:
my $scanner = Perl::PrereqScanner->new({ scanners => [ qw(Perl5) ] });
# Use any stock scanners, plus Example:
my $scanner = Perl::PrereqScanner->new({ extra_scanners => [ qw(Example) ] });

my $prereqs = $scanner->scan_string( $perl_code );
Given a string containing Perl source code, this method returns a CPAN::Meta::Requirements object describing the modules it requires.
This method will throw an exception if PPI fails to parse the code.
my $prereqs = $scanner->scan_file( $path );
Given a file path to a Perl document, this method returns a CPAN::Meta::Requirements object describing the modules it requires.
This method will throw an exception if PPI fails to parse the code.
my $prereqs = $scanner->scan_ppi_document( $ppi_doc );
Given a PPI::Document, this method returns a CPAN::Meta::Requirements object describing the modules it requires.


This software is copyright (c) 2009 by Jerome Quelin.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.