Perl::MinimumVersion::Fast(3pm) | User Contributed Perl Documentation | Perl::MinimumVersion::Fast(3pm) |
NAME¶
Perl::MinimumVersion::Fast - Find a minimum required version of perl for Perl code
SYNOPSIS¶
use Perl::MinimumVersion::Fast; my $p = Perl::MinimumVersion::Fast->new($filename); print $p->minimum_version, "\n";
DESCRIPTION¶
"Perl::MinimumVersion::Fast" takes Perl source code and calculates the minimum version of perl required to be able to run it. Because it is based on goccy's Compiler::Lexer, it can do this without having to actually load the code.
Perl::MinimumVersion::Fast is an alternative fast & lightweight implementation of Perl::MinimumVersion.
This module supports only Perl 5.8.1+. If you want to support Perl 5.6, use Perl::MinimumVersion instead.
In 2013, you don't need to support Perl 5.6 in most of case.
METHODS¶
- "my $p = Perl::MinimumVersion::Fast->new($filename);"
- "my $p = Perl::MinimumVersion::Fast->new(\$src);"
- Create new instance. You can create object from $filename and "\$src" in string.
- "$p->minimum_version();"
- Get a minimum perl version the code required.
- "$p->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, "undef" if no dependencies could be found.
- "$p->minimum_syntax_version()"
- 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.
Returns a version object, "undef" if no dependencies could be found.
- 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.
BENCHMARK¶
Perl::MinimumVersion::Fast is faster than Perl::MinimumVersion. Because Perl::MinimumVersion::Fast uses Compiler::Lexer, that is a Perl5 lexer implemented in C++. And Perl::MinimumVersion::Fast omits some features implemented in Perl::MinimumVersion.
But, but, Perl::MinimumVersion::Fast is really fast.
Rate Perl::MinimumVersion Perl::MinimumVersion::Fast Perl::MinimumVersion 5.26/s -- -97% Perl::MinimumVersion::Fast 182/s 3365% --
LICENSE¶
Copyright (C) tokuhirom.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
THANKS TO¶
Most of documents are taken from Perl::MinimumVersion.
AUTHOR¶
tokuhirom <tokuhirom@gmail.com>
SEE ALSO¶
This module using Compiler::Lexer as a lexer for Perl5 code.
This module is inspired from Perl::MinimumVersion.
2023-03-03 | perl v5.36.0 |