atlantageek has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks, I am ready to submit my first CPAN module. However I am having trouble understanding the h2xs mechanism. I have two .pm files that should be published together. One is totally dependent on the other. How do I packages these together using h2xs?

----
I always wanted to be somebody... I guess I should have been more specific.

Replies are listed 'Best First'.
Re: Building CPAN Modules
by jZed (Prior) on Jun 04, 2004 at 04:37 UTC
    Just put both the .pms in the appropriate directory under lib and refer to them in the Manifest file.
Re: Building CPAN Modules
by xdg (Monsignor) on Jun 04, 2004 at 15:10 UTC

    Well, first, h2xs doesn't package the modules for you. For pure perl modules, it's just used to create a directory structure. (There are other options to make that directory structure, such as ExtUtils::ModuleMaker or my Template Toolkit extension of that, ExtUtils::ModuleMaker::TT that you may find easier to use.)

    Once you have the directory structure, you can put your .pm files in the appropriate place, such as a directory called "lib" (depending on what options you provide to h2xs or an equivalent program), and fill out some control files such as a Makefile.PL or Build.PL along with the MANIFEST file. After that, the .PL can be run through perl ("perl Makefile.PL") to produce a Makefile (or if you're using Build.PL, a Build script). Then you can "make tardist" (or "Build dist") to create the archive file for upload to CPAN.

    If that sounds incredibly complicated, well, it is. That also doesn't include useful things you should do like filling in a README file and Changes file, writing tests for your module, etc. I strongly suggest checking out the Perlmonks Tutorials section on writing modules. Sam Tregar's book "Writing Perl Modules for CPAN" is also a great resource to get.

    It may seem like a lot of work, but it gets easy once you do it a couple times. Welcome to the world of CPAN authorship!

    -xdg

    Code posted by xdg on PerlMonks is public domain. It has no warranties, express or implied. Posted code may not have been tested. Use at your own risk.

Re: Building CPAN Modules
by TomDLux (Vicar) on Jun 05, 2004 at 00:19 UTC

    Before you bundle up the package, go into the t/ directory and write suitable tests.

    --
    TTTATCGGTCGTTATATAGATGTTTGCA