GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PERL::CRITIC::POLICY::MODULES::REQUIREFILENAMEMATCHESPACKAGE (3)

.ds Aq ’

NAME

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

CONTENTS

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 (doesnt 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.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 PERL::CRITIC::POLICY::MODULES::REQUIREFILENAMEMATCHESPACKAGE (3) 2016-04-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.