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

FreeBSD Manual Pages

  
 
  

home | help
Perl::Critic::PPerl::CUsercContributedoPerlsDocumentationnameMatchesPackage(3)

NAME
       Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage - Package
       declaration must	match filename.

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

DESCRIPTION
       The package declaration should always match the name of the file	that
       contains	it.  For example, "package Foo::Bar;" should be	in a file
       called "Bar.pm".	 This makes it easier for developers to	figure out
       which file a symbol comes from when they	see it in your code.  For
       instance, when you see "Foo::Bar->new()", you should be able to find
       the class definition for	a "Foo::Bar" in	a file called Bar.pm

       Therefore, this Policy requires the last	component of the first package
       name declared in	the file to match the physical filename.  Or if
       "#line" directives are used, then it must match the logical filename
       defined by the prevailing "#line" directive at the point	of the package
       declaration.  Here are some examples:

	 # Any of the following	in file	"Foo/Bar/Baz.pm":
	 package Foo::Bar::Baz;	    # ok
	 package Baz;		    # ok
	 package Nuts;		    # not ok (doesn't match physical filename)

	 # using #line directives in file "Foo/Bar/Baz.pm":
	 #line 1 Nuts.pm
	 package Nuts;		   # ok
	 package Baz;		   # not ok (contradicts #line directive)

       If the file is not deemed to be a module, then this Policy does not
       apply.  Also, if	the first package namespace found in the file is
       "main" then this	Policy does not	apply.

CONFIGURATION
       This Policy is not configurable except for the standard options.

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.

perl v5.24.1   Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage(3)

NAME | AFFILIATION | DESCRIPTION | CONFIGURATION | AUTHOR | COPYRIGHT

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

home | help