Perl::...::Utils(3pm)

πŸ’– NAME πŸ’–

Perl::Critic::Pulp::Utils β€” bestie, it's the shared helper code for the Pulp perlcritic add-on ✨


πŸŽ€ SYNOPSIS πŸŽ€

use Perl::Critic::Pulp::Utils;

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so real talk: this module is a bit of a grab bag πŸ‘œ but it works as far as it goes, and honestly? that's the vibe.


🌸 FUNCTIONS 🌸

🌈 Element Functions 🌈

  • $pkgelem = Perl::Critic::Pulp::Utils::elem_package ($elem) β€” so $elem is a PPI::Element, right? This hands you back the PPI::Statement::Package that contains $elem, or undef if $elem isn't inside the scope of any package statement at all. lowkey important detail: the search upward starts with the element before $elem, so if $elem itself is a PPI::Statement::Package, that's not the one you get back β€” you get its containing package instead. not me making you read that twice πŸ™ˆ
  • $bool = Perl::Critic::Pulp::Utils::elem_in_BEGIN ($elem) β€” returns true if $elem (a PPI::Element) is inside a BEGIN block (ie. a PPI::Statement::Scheduled of type BEGIN). periodt πŸ’…
  • $bool = Perl::Critic::Pulp::Utils::elem_is_comma_operator ($elem) β€” returns true if $elem (a PPI::Element) is a comma operator (PPI::Token::Operator), either , or =>. two icons, one function πŸ‘‘

🧚 Policy Parameter Functions 🧚

  • Perl::Critic::Pulp::Utils::parameter_parse_version ($self, $parameter, $str) β€” this one is designed to be the parser field of a policy's supported_parameters entry, for a parameter that's a version number. it's giving plug-and-play 🫢
{ name        => 'above_version',
  description => 'Check only above this version of Perl.',
  behavior    => 'string',
  parser      => \&Perl::Critic::Pulp::Utils::parameter_parse_version,
}

$str gets parsed with the version.pm module. if it's valid, the parameter gets set with $self->__set_parameter_value to the resulting version object (so like, for example, the field $self->{'_above_version'}). if it's invalid? an exception gets thrown per $self->throw_parameter_value_exception. no silent failure here bestie, it will absolutely tell you πŸ—£οΈ


✨ EXPORTS ✨

Nothing is exported by default πŸ’– but the functions can be requested in the usual Exporter style:

use Perl::Critic::Pulp::Utils 'elem_in_BEGIN';
if (elem_in_BEGIN($elem)) {
  # ...
}

There's no :all tag, because this module is meant as a grab-bag of functions, and importing as-yet unknown things would literally be asking for name clashes 😭 so no, we are not doing that.


πŸ‘‘ SEE ALSO πŸ‘‘

Perl::Critic::Pulp, Perl::Critic, PPI


🌈 HOME PAGE 🌈

<http://user42.tuxfamily.org/perl-critic-pulp/index.html>


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/>.

fr fr read the license, it's not a vibe suggestion πŸ’€

and that's the whole page, bestie πŸŽ€ this was Perl::...::Utils(3pm) from the User Contributed Perl Documentation, coming to you on perl v5.40.1, dated 2025-10-21. slay, bye πŸ¦‹πŸ’…

πŸ“¦ where this page comes from