Modules
Learn about the modules in Perl.
Overview
We’ve seen functions, classes, and data structures used to organize code.
Perl’s next mechanism for organization and extension is the module. A module
is a package contained in its file and loadable with use or require. A module
must be valid Perl code. It must end with an expression that evaluates to a
true value so that the Perl parser knows it has loaded and compiled the
module successfully.
There are no other requirements—only strong conventions.
Loading a Perl module
When we load a module, Perl splits the package name on double colons (::)
and turns the components of the package name into a file path. This means
that use StrangeMonkey; causes Perl to search for a file named StrangeMonkey.pm in every directory in @INC in order until it finds one or exhausts the list.
Similarly, use StrangeMonkey::Persistence; causes Perl to search for a file named
Persistence.pm in every directory named StrangeMonkey/ present in every directory
in @INC, and so on. use StrangeMonkey::UI::Mobile; causes Perl to search for a relative
file path of StrangeMonkey/UI/Mobile.pm in every directory in @INC.
The resulting file may or may not contain a package declaration matching its filename—there’s no such technical requirement—but it’ll cause confusion without that match.
...