Parse::PMFile(3pm) User Contributed Perl Documentation Parse::PMFile(3pm)
NAME
Parse::PMFile - parses .pm file as PAUSE does
SYNOPSIS
use Parse::PMFile;
my $parser = Parse::PMFile->new($metadata, {VERBOSE => 1});
my $packages_info = $parser->parse($pmfile);
# if you need info about invalid versions
my ($packages_info, $errors) = $parser->parse($pmfile);
# to check permissions
my $parser = Parse::PMFile->new($metadata, {
USERID => 'ISHIGAKI',
PERMISSIONS => PAUSE::Permissions->new,
});
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. 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,
and an optional hashref. Options are:
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 option 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.
FORK
As of version 0.17, Parse::PMFile stops forking while parsing a
version for better performance. Parse::PMFile should return the
same result no matter how this option is set, but if you do care,
set this to true to fork as PAUSE does.
USERID, PERMISSIONS
As of version 0.21, Parse::PMFile checks permissions of a package
if both USERID and PERMISSIONS (which should be an instance of
PAUSE::Permissions) are provided. Unauthorized packages are
removed.
UNSAFE
Parse::PMFile usually parses a module version in a Safe
compartment. However, this approach doesn't work smoothly under
older perls (prior to 5.10) plus some combinations of recent
versions of Safe.pm (2.24 and above) and version.pm (0.9905 and
above) for various reasons. As of version 0.27, Parse::PMFile
simply uses "eval" to parse a version under older perls. If you
want it to use always "eval" (even under recent perls), set this to
true.
parse
takes a path to a .pm file, and returns a hash reference that holds
information for package(s) found in the file.
SEE ALSO
Parse::LocalDistribution, PAUSE::Permissions
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.
perl v5.32.0 2020-12-13 Parse::PMFile(3pm)
Czas wygenerowania: 0.00008 sek.
Created with the man page lookup class by Andrew Collington.
Based on a C man page viewer by Vadim Pavlov
Unicode soft-hyphen fix (as used by RedHat) by Dan Edwards
Some optimisations by Eli Argon
Caching idea and code contribution by James Richardson
Copyright © 2003-2025 Linux.pl
Hosted by Hosting Linux.pl