Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: Starting the development of a module : thoughts

by btrott (Parson)
on Jun 29, 2001 at 03:27 UTC ( #92498=note: print w/replies, xml ) Need Help??

in reply to Starting the development of a module : thoughts

Here are some additional thoughts/steps.

  • h2xs automatically creates a MANIFEST file. I don't use it; I delete it. I like using 'make manifest', because it automatically generates a MANIFEST file for me when I want it. To do this, set up a MANIFEST.SKIP file. Here's an example of a standard one I use:
    \bCVS\b ^MANIFEST\. ^Makefile$ ~$ \.old$ ^blib/ ^pm_to_blib$ \.tar\.gz$
    With this in place, I don't have to maintain a list of all my files; 'make manifest' will start at the current directory and assemble a list of all files not matching the patterns in MANIFEST.SKIP, then write the names of those files to MANIFEST.

    So, to create a new distribution, I can do:

    perl Makefile.PL make manifest make dist
    I keep my MANIFEST.SKIP under source control but that's not really necessary.

  • What is 'make build'? My Makefiles don't have a 'build' target.

  • You might also want to get into some of the interesting things you can do with a Makefile.PL. You can make it sort of a 'configure' for your distribution.

    As an example, the Makefile.PL for Net::SSH::Perl lets the user choose whether to install the prereqs for SSH-1 or SSH-2 (or both), which means that if the user really only wants SSH-1 support, he/she doesn't have to install a bunch of modules he/she doesn't need. Of course, this also means you have to learn to love using require in your code, for runtime loading of modules. :)

    Another useful Makefile.PL "trick" is to a "does user have this module installed?" function:

    sub have_mod { my($mod, $ver) = @_; eval("use $mod" . ($ver ? " $ver;" : ";")); !$@; }
    This allows you to do your own prerequisite checking in Makefile.PL, because unfortunately, the prereq checking in the CPAN module depends on having an explicit list of args to PREREQ_PM; it actually parses your Makefile.PL to look for such a list. If you have, for example, this:
    PREREQ_PM => \%prereq,
    then it won't pick up the list of prereqs correctly. So if that list is dynamic, then you may need to do your own checking.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://92498]
[james28909]: foreach server this bot is on, the gateway sends me a json response, which i parse out all the info with JSON, and this response has user information, i need to be able to add a user, and then update the user info when they join/leave rooms ect
[james28909]: i think im good
[james28909]: i just watched a youtube video
[karlgoethebier]: james28909: Did you look on CPAN?
[james28909]: lol
[karlgoethebier]: james28909: Super Search here ?
[karlgoethebier]: james28909: No kidding

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (11)
As of 2017-05-25 16:40 GMT
Find Nodes?
    Voting Booth?