Chapter 16. Writing a Distribution

In Chapter 15, we created a fictional Island::Plotting::Maps module and built the right support for Exporter so that we could include use Island::Plotting::Maps in a program.

While the resulting .pm file was useful, it wasn’t very practical. We have a lot more work to do before we can share our work, whether that means simply installing it ourselves on another one of our machines or giving it to someone else to use.

Installation location

How does everything get in the right place so Perl can find it? Where is our code going to be stored on the system? Can users make it available to everyone on the system because they have root or administrator privileges, or do they have to install it in their own directories?


Where is the documentation for the module? How is the documentation installed so the user can read it?

Archive completeness

Is there anything extra that the users of our software will need? What else do I have to include with my code to make it usable?


How do we know our software works? Have we verified that it does what we say it does? How do we know it works the same on other operating systems or versions of Perl?

C-language interfaces

If our module contains C or C++ code (not covered here), how can the developer describe how to compile and link the code in the developer’s environment or the end user environment?

There’s More Than One Way To Do It

A distribution contains the module (or collection of related modules), ...

Get Intermediate Perl now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.