How do I create a standard Perl module intended for distribution?

First of all, after looking at the mailing list archives, this looks like a
list where I can ask my question, but if not, then please excuse my
intrusion.

Second, I am in the process of writing an object oriented version of a
program called MyLibrary. For more information than you need to know about
MyLibrary, see:

  * http://dewey.library.nd.edu/mylibrary/
  * http://dewey.library.nd.edu/cgi-bin/cvsweb.cgi/MyLibrary/

I want to re-create MyLibrary in the most Perl-standard fashion, and
consequently, I need to have things like a MANIFEST file, a Makefile.PL, a t
directory, and a README file in my distribution.

My Perl Cookbook says I should use this command to initialize my project:

  h2xs -XA -n MyLibrary

Fine, but I never expect to have an actual package named MyLibrary.pm.
Instead, I suspect I will have various sub-packages such as
MyLibrary::Librarian, MyLibrary::Resource, and MyLibrary::Patron.
Consequently, I could do this:

  h2xs -XA -n MyLibrary::Librarian

Unfortunately, this invocation creates a Librarian directory with all the
necessary files, and if I were to do this for each of my packages, then I
would have bunches o' MANIFESTs to keep up with. Non-standard.

Assuming my MyLibrary module is going to have many sub-packages, how do I
create the skeleton of my module with the h2xs command?

On the other hand, maybe I should have a file named MyLibrary.pm and all it
contains is a version number, abstract, and pointers to the sub-packages?

-- 
Eric "Looking For Advice" Morgan
Head, Digital Access and Information Architecture Department
University Libraries of Notre Dame

(574) 631-8604


Reply via email to