Chapter 12. Packages, Libraries, and Modules
Like all those possessing a library, Aurelian was aware that he was guilty of not knowing his in its entirety.
Introduction
Imagine that you have two separate programs, both of which
work fine by themselves, and you decide to make a third program that
combines the best features from the first two. You copy both programs
into a new file or cut and paste selected pieces. You find that the two
programs had variables and functions with the same names that should
remain separate. For example, both might have an init
function or a global $count
variable. When merged into one program,
these separate parts would interfere with each other.
The solution to this problem is packages.
Perl uses packages to partition the global namespace. The package is the
basis for both traditional modules and object-oriented classes. Just as
directories contain files, packages contain identifiers. Every global
identifier (variables, functions, file and directory handles, and
formats) has two parts: its package name and the identifier proper.
These two pieces are separated from one another with a double colon. For
example, the variable $CGI::needs_binmode
is a global variable named
$needs_binmode
, which resides in
package CGI
.
Where the filesystem uses slashes to separate the
directory from the filename, Perl uses a double colon. $Names::startup
is the variable named $startup
in the package Names
, whereas $Dates::startup
is the $startup ...
Get Perl Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.