Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Perl::Critic::Policy::User:ContributedlPerl:Documentatio:ProtectPrivateSubs(3)

NAME
       Perl::Critic::Policy::Subroutines::ProtectPrivateSubs - Prevent access
       to private subs in other	packages.

AFFILIATION
       This Policy is part of the core Perl::Critic distribution.

DESCRIPTION
       By convention Perl authors (like	authors	in many	other languages)
       indicate	private	methods	and variables by inserting a leading
       underscore before the identifier.  This policy catches attempts to
       access private variables	from outside the package itself.

       The subroutines in the POSIX package which begin	with an	underscore
       (e.g. "POSIX::_POSIX_ARG_MAX") are not flagged as errors	by this
       policy.

CONFIGURATION
       You can define what a private subroutine	name looks like	by specifying
       a regular expression for	the "private_name_regex" option	in your
       .perlcriticrc:

	   [Subroutines::ProtectPrivateSubs]
	   private_name_regex =	_(?!_)\w+

       The above example is a way of saying that subroutines that start	with a
       double underscore are not considered to be private.  (Perl::Critic, in
       its implementation, uses	leading	double underscores to indicate a
       distribution-private subroutine-- one that is allowed to	be invoked by
       other Perl::Critic modules, but not by anything outside of
       Perl::Critic.)

       You can configure additional subroutines	to accept by specifying	them
       in a space-delimited list to the	"allow"	option:

	   [Subroutines::ProtectPrivateSubs]
	   allow = FOO::_bar FOO::_baz

       These are added to the default list of exemptions from this policy.
       Allowing	a subroutine also allows the corresponding method call.	So
       "FOO::_bar" in the above	example	allows both "FOO::_bar()" and
       "FOO->_bar()".

HISTORY
       This policy is inspired by a similar test in B::Lint.

BUGS
       Doesn't forbid "$pkg->_foo()" because it	can't tell the difference
       between that and	"$self->_foo()".

SEE ALSO
       Perl::Critic::Policy::Variables::ProtectPrivateVars

AUTHOR
       Chris Dolan <cdolan@cpan.org>

COPYRIGHT
       Copyright (c) 2006-2011 Chris Dolan.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.  The full text of this license can
       be found	in the LICENSE file included with this module.

perl v5.24.1	      Perl::Critic::Policy::Subroutines::ProtectPrivateSubs(3)

NAME | AFFILIATION | DESCRIPTION | CONFIGURATION | HISTORY | BUGS | SEE ALSO | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Perl::Critic::Policy::Subroutines::ProtectPrivateSubs&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help