NAME¶
Perl::PrereqScanner - a tool to scan your Perl code for its prerequisites
VERSION¶
version 1.012
SYNOPSIS¶
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 );
DESCRIPTION¶
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:
- •
- plain lines beginning with "use" or
"require" in your perl modules and scripts, including minimum
perl version
- •
- regular inheritance declared with the "base" and
"parent" pragmata
- •
- Moose inheritance declared with the "extends"
keyword
- •
- Moose roles included with the "with" keyword
- •
- OO namespace aliasing using the "aliased"
module
Scanner Plugins¶
Perl::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) ] });
METHODS¶
scan_string¶
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.
scan_file¶
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.
scan_ppi_document¶
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.
AUTHORS¶
- •
- Jerome Quelin
- •
- Ricardo Signes <rjbs@cpan.org>
COPYRIGHT AND LICENSE¶
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.