NAME
Perl::Critic::Pulp::Utils - shared helper code for the Pulp perlcritic add-on
SYNOPSIS
use Perl::Critic::Pulp::Utils;
DESCRIPTION
This is a bit of a grab bag, but works as far as it goes.
FUNCTIONS
Element Functions
$pkgelem = Perl::Critic::Pulp::Utils::elem_package ($elem)
-
$elem
is aPPI::Element
. Return thePPI::Statement::Package
containing$elem
, orundef
if$elem
is not in the scope of any package statement.The search upwards begins with the element preceding
$elem
, so if$elem
itself is aPPI::Statement::Package
then that's not the one returned, instead its containing package. $bool = Perl::Critic::Pulp::Utils::elem_in_BEGIN ($elem)
-
Return true if
$elem
(aPPI::Element
) is within aBEGIN
block (ie. aPPI::Statement::Scheduled
of type "BEGIN"). $bool = Perl::Critic::Pulp::Utils::elem_is_comma_operator ($elem)
-
Return true if
$elem
(aPPI::Element
) is a comma operator (PPI::Token::Operator
), either "," or "=>'.
Policy Parameter Functions
Perl::Critic::Pulp::Utils::parameter_parse_version ($self, $parameter, $str)
-
This is designed for use as the
parser
field of a policy'ssupported_parameters
entry for a parameter which is a version number.{ name => 'above_version', description => 'Check only above this version of Perl.', behavior => 'string', parser => \&Perl::Critic::Pulp::Utils::parameter_parse_version, }
$str
is parsed with theversion.pm
module. If valid then the parameter is set with$self->__set_parameter_value
to the resultingversion
object (so for example field $self->{'_above_version'}). If invalid then an exception is thrown per$self->throw_parameter_value_exception
.
EXPORTS
Nothing is exported by default, but the functions can be requested in usual Exporter
style,
use Perl::Critic::Pulp::Utils 'elem_in_BEGIN';
if (elem_in_BEGIN($elem)) {
# ...
}
There's no :all
tag since this module is meant as a grab-bag of functions and importing as-yet unknown things would be asking for name clashes.
SEE ALSO
Perl::Critic::Pulp, Perl::Critic, PPI
HOME PAGE
http://user42.tuxfamily.org/perl-critic-pulp/index.html
COPYRIGHT
Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2021 Kevin Ryde
Perl-Critic-Pulp 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.
Perl-Critic-Pulp 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 Perl-Critic-Pulp. If not, see <http://www.gnu.org/licenses/>.