On Fri, Aug 4, 2017 at 11:52 AM hw <[email protected]> wrote:
> > Often you will see a module that contains one package statement which
> leads to the confusion.
>
> Huh? How many package statements is a module supposed to contain?
> And doesn´t a package statement turn a module into a package?
>
No, package statements are not required to make a module. All that is
required to make a module is a file that is valid Perl code whose last line
evaluates to true.
It is convention for a module to start with a package statement declaring a
package with the same name as the module, but that is not a requirement.
Package statements just create a namespace. You don't even really need the
package statement to that though. This is a module with its own namespace
with no package statements:
use strict;
use warnings;
sub Odd::Module::foo {
print "this is an odd module with its own namespace\n";
}
1;
The package statement just makes it so all functions and package variables
declared after it don't have to be fully qualified.
A not uncommon pattern is to have a module that has multiple packages
inside it:
package Main::Module;
package Main::Module::Helper;
1;