NAME

Parse::PMFile - parses .pm file as PAUSE does

SYNOPSIS

use Parse::PMFile;

my $parser = Parse::PMFile->new($metadata);
my $packages_info = $parser->parse($pmfile);

# if you need info about invalid versions
my ($packages_info, $errors) = $parser->parse($pmfile);

DESCRIPTION

The most of the code of this module is taken from the PAUSE code as of April 2013 almost verbatim. Thus, the heart of this module should be quite stable. However, I made it not to use pipe ("-|") as well as I stripped database-related code and permission check. If you encounter any issue, that's most probably because of my modification.

This module doesn't provide features to extract a distribution or parse meta files intentionally.

METHODS

new

creates an object. You can also pass a hashref taken from META.yml etc.

parse

takes a path to a .pm file, and returns a hash reference that holds information for package(s) found in the file.

GLOBAL VARIABLES

$ALLOW_DEV_VERSION

Parse::PMFile usually ignores a version with an underscore as PAUSE does (because it's for a developer release, and should not be indexed). Set this variable to true if you happen to need to keep such a version for better analysis.

$VERBOSE

Set this to true if you need to know some details.

SEE ALSO

Most part of this module is derived from PAUSE and CPAN::Version.

https://github.com/andk/pause

https://github.com/andk/cpanpm

AUTHOR

Andreas Koenig <andreas.koenig@anima.de>

Kenichi Ishigaki, <ishigaki@cpan.org>

COPYRIGHT AND LICENSE

Copyright 1995 - 2013 by Andreas Koenig <andk@cpan.org> for most of the code.

Copyright 2013 by Kenichi Ishigaki for some.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.