Pod::MinimumVersion - Perl version for POD directives used
use Pod::MinimumVersion; my $pmv = Pod::MinimumVersion->new (filename => '/some/foo.pl'); print $pmv->minimum_version,"\n"; print $pmv->reports;
Pod::MinimumVersion parses the POD in a Perl script, module, or document, and reports what version of Perl is required to process the directives in it with pod2man etc.
Pod::MinimumVersion
pod2man
The following POD features are identified.
5.004: new =for, =begin and =end
=for
=begin
=end
5.005: new L<display text|target> style display part
5.6.0: new C<< foo >> etc double-angles
5.8.0: new =head3 and =head4
=head3
=head4
5.8.0: new L<http://some.where.com> URLs. (Before 5.8 the "/" is a "section" separator, giving very poor output.)
5.8.0: new E<apos>, E<sol>, E<verbar> chars. (Documented in 5.6.0, but pod2man doesn't recognise them until 5.8.)
5.10.0: new =encoding command. (Documented in 5.8.0, but pod2man doesn't recognise it until 5.10.)
=encoding
5.12.0: new L<display text|http://some.where.com> URL with text. (Before 5.12 the combination of display part and URL was explicitly disallowed by perlpodspec.)
POD syntax errors are quietly ignored currently. The intention is only to check what pod2man would act on but it's probably a good idea to use Pod::Checker first.
Pod::Checker
J<< >> for Pod::MultiLang is recognised and is allowed for any Perl, including with double-angles. The assumption is that if you're writing that then you'll first crunch with the Pod::MultiLang tools, so it's not important what pod2man thinks of it.
J<< >>
Pod::MultiLang
$pmv = Pod::MinimumVersion->new (key => value, ...)
Create and return a new Pod::MinimumVersion object which will analyze a document. The document is supplied as one of
filehandle => $fh, string => 'something', filename => '/my/dir/foo.pod',
For filehandle and string, a filename can be supplied too to give a name in the reports. The handle or string is what's actually read.
filehandle
string
filename
The above_version option lets you set a Perl version of you have or are targeting, so reports are only about features above that level.
above_version
above_version => '5.006',
$version = $pmv->minimum_version ()
$report = $pmv->minimum_report ()
Return the minimum Perl required for the document in $pmv.
$pmv
minimum_version returns a version number object (see version). minimum_report returns a Pod::MinimumVersion::Report object (see "REPORT OBJECTS" below).
minimum_version
version
minimum_report
Pod::MinimumVersion::Report
@reports = $pmv->reports ()
Return a list of Pod::MinimumVersion::Report objects concerning the document in $pmv.
These multiple reports let you identify multiple places that a particular Perl is required. With the above_version option the reports are only about things higher than that.
minimum_version and minimum_report are simply the highest Perl among these multiple reports.
A Pod::MinimumVersion::Report object holds a location within a document and a reason that a particular Perl is needed at that point. The hash fields are
filename string linenum integer, with 1 for the first line version version.pm object why string
$str = $report->as_string
Return a formatted string for the report. Currently this is in GNU file:line style, simply
<filename>:<linenum>: <version> due to <why>
version, Pod::MultiLang, Perl::Critic::Policy::Compatibility::PodMinimumVersion
Perl::MinimumVersion, Perl::Critic::Policy::Modules::PerlMinimumVersion, Perl::Critic::Policy::Compatibility::PerlMinimumVersionAndWhy
http://user42.tuxfamily.org/pod-minimumversion/index.html
Copyright 2009, 2010, 2011 Kevin Ryde
Pod-MinimumVersion is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Pod-MinimumVersion is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Pod-MinimumVersion. If not, see <http://www.gnu.org/licenses/>.
To install Pod::MinimumVersion, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Pod::MinimumVersion
CPAN shell
perl -MCPAN -e shell install Pod::MinimumVersion
For more information on module installation, please visit the detailed CPAN module installation guide.