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

FreeBSD Manual Pages

  
 
  

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

NAME
       Perl::Critic::Policy::Modules::RequireExplicitPackage - Always make the
       "package" explicit.

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

DESCRIPTION
       In general, the first statement of any Perl module or library should be
       a "package" statement.  Otherwise, all the code that comes before the
       "package" statement is getting executed in the caller's package,	and
       you have	no idea	who that is.  Good encapsulation and common decency
       require your module to keep its innards to itself.

       There are some valid reasons for	not having a "package" statement at
       all.  But make sure you understand them before assuming that you	should
       do it too.

       The maximum number of violations	per document for this policy defaults
       to 1.

CONFIGURATION
       As for programs,	most people understand that the	default	package	is
       "main", so this Policy doesn't apply to files that begin	with a perl
       shebang.	 If you	want to	require	an explicit "package" declaration in
       all files, including programs, then add the following to	your
       .perlcriticrc file

	   [Modules::RequireExplicitPackage]
	   exempt_scripts = 0

       Some users may find it desirable	to exempt the load of specific modules
       from this policy. For example, Perl does	not support Unicode module
       names because of	portability problems. Users who	are not	concerned
       about this and intend to	use "UTF-8" module names will need to specify
       "use utf8;" before the package declaration. To do this, add the
       following to your .perlcriticrc file

	   [Modules::RequireExplicitPackage]
	   allow_import_of = utf8

       The "allow_import_of" configuration option takes	multiple module	names,
       separated by spaces.

IMPORTANT CHANGES
       This policy was formerly	called "ProhibitUnpackagedCode"	which sounded
       a bit odd.  If you get lots of "Cannot load policy module" errors, then
       you probably need to change "ProhibitUnpackagedCode" to
       "RequireExplicitPackage"	in your	.perlcriticrc file.

AUTHOR
       Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>

COPYRIGHT
       Copyright (c) 2005-2011 Imaginative Software Systems.  All rights
       reserved.

       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::Modules::RequireExplicitPackage(3)

NAME | AFFILIATION | DESCRIPTION | CONFIGURATION | IMPORTANT CHANGES | AUTHOR | COPYRIGHT

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

home | help