Unix/Linux Go Back    


CentOS 7.0 - man page for perl::minimumversion (centos section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


Perl::MinimumVersion(3)        User Contributed Perl Documentation	  Perl::MinimumVersion(3)

NAME
       Perl::MinimumVersion - Find a minimum required version of perl for Perl code

SYNOPSIS
	 # Create the version checking object
	 $object = Perl::MinimumVersion->new( $filename );
	 $object = Perl::MinimumVersion->new( \$source	);
	 $object = Perl::MinimumVersion->new( $ppi_document );

	 # Find the minimum version
	 $version = $object->minimum_version;

DESCRIPTION
       "Perl::MinimumVersion" takes Perl source code and calculates the minimum version of perl
       required to be able to run it. Because it is based on PPI, it can do this without having
       to actually load the code.

       Currently it tests both the syntax of your code, and the use of explicit version
       dependencies such as "require 5.005".

       Future plans are to also add support for tracing module dependencies.

       Using "Perl::MinimumVersion" is dead simple, the synopsis pretty much covers it.

METHODS
   new
	 # Create the version checking object
	 $object = Perl::MinimumVersion->new( $filename );
	 $object = Perl::MinimumVersion->new( \$source	);
	 $object = Perl::MinimumVersion->new( $ppi_document );

       The "new" constructor creates a new version checking object for a PPI::Document. You can
       also provide the document to be read as a file name, or as a "SCALAR" reference containing
       the code.

       Returns a new "Perl::MinimumVersion" object, or "undef" on error.

   Document
       The "Document" accessor can be used to get the PPI::Document object back out of the
       version checker.

   minimum_version
       The "minimum_version" method is the primary method for finding the minimum perl version
       required based on "all" factors in the document.

       At the present time, this is just syntax and explicit version checks, as Perl::Depends is
       not yet completed.

       Returns a version object, or "undef" on error.

   minimum_explicit_version
       The "minimum_explicit_version" method checks through Perl code for the use of explicit
       version dependencies such as.

	 use 5.006;
	 require 5.005_03;

       Although there is almost always only one of these in a file, if more than one are found,
       the highest version dependency will be returned.

       Returns a version object, false if no dependencies could be found, or "undef" on error.

   minimum_syntax_version $limit
       The "minimum_syntax_version" method will explicitly test only the Document's syntax to
       determine it's minimum version, to the extent that this is possible.

       It takes an optional parameter of a version object defining the the lowest known current
       value. For example, if it is already known that it must be 5.006 or higher, then you can
       provide a param of qv(5.006) and the method will not run any of the tests below this
       version. This should provide dramatic speed improvements for large and/or complex
       documents.

       The limitations of parsing Perl mean that this method may provide artifically low results,
       but should not artificially high results.

       For example, if "minimum_syntax_version" returned 5.006, you can be confident it will not
       run on anything lower, although there is a chance that during actual execution it may use
       some untestable feature that creates a dependency on a higher version.

       Returns a version object, false if no dependencies could be found, or "undef" on error.

   minimum_external_version
       WARNING: This method has not been implemented. Any attempted use will throw an exception

       The "minimum_external_version" examines code for dependencies on other external files, and
       recursively traverses the dependency tree applying the same tests to those files as it
       does to the original.

       Returns a "version" object, false if no dependencies could be found, or "undef" on error.

   version_markers
       This method returns a list of pairs in the form:

	 ($version, \@markers)

       Each pair represents all the markers that could be found indicating that the version was
       the minimum needed version.  @markers is an array of strings.  Currently, these strings
       are not as clear as they might be, but this may be changed in the future.  In other words:
       don't rely on them as specific identifiers.

BUGS
       Perl::MinimumVersion does a reasonable job of catching the best-known explicit version
       dependencies.

       However it is exceedingly easy to add a new syntax check, so if you find something this is
       missing, copy and paste one of the existing 5 line checking functions, modify it to find
       what you want, and report it to rt.cpan.org, along with the version needed.

       I don't even need an entire diff... just the function and version.

TO DO
       Write lots more version checkers

       - Perl 5.10 operators and language structures

       - Three-argument open

       Write the explicit version checker

       Write the recursive module descend stuff

       Check for more 5.12 features (currently only detecting "package NAME VERSION;", "...", and
       "use feature ':5.12'")

SUPPORT
       All bugs should be filed via the CPAN bug tracker at

       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Perl-MinimumVersion>

       For other issues, or commercial enhancement or support, contact the author.

AUTHORS
       Adam Kennedy <adamk@cpan.org>

SEE ALSO
       <http://ali.as/>, PPI, version

COPYRIGHT
       Copyright 2005 - 2013 Adam Kennedy.

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

       The full text of the license can be found in the LICENSE file included with this module.

perl v5.16.3				    2013-01-16			  Perl::MinimumVersion(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 03:36 AM.