Skip to content

My first ever CPAN module!

November 27, 2008

Well it had to happen one day I suppose!   Though I am amazed it took this long because been playing with the notion for some years now.  

What’s ironic is that I’ve uploaded something I’ve only recently developed and not some older and more established code/modules/libraries that I have lying around.   Still plenty of time for them to be dusted down and uploaded 😉


For the uninitiated these are the first steps you need to make….

  1. Get a PAUSE account…
  2. Register Namespace (from menu)
  3. Upload module (from menu)

Sounds easy doesn’t it.   Well it actually is easy  and just looks daunting when its unknown quantity.  

Before point 2 u should check that namespace is free on CPAN.   With point 2 you do provide some details about the module and there could be a discussion.   You can do point 3 immediately however I waited a week to see if there were any issues (mine was a root level namespace… but no one came back).

If all goes well then you module will appear on CPAN the next day (which it did!).  There are tools / logs on PAUSE which provides status on you upload and if needed ways to fix some of the potential problems.

PAUSE may look “antiquated”… but it works and thats what counts.

Of course I don’t like the simple life (or rather I don’t make my life simple enough!).  So instead of sticking with h2xs and subversion I decided it was time to upgrade to Module::Build and git!    So I’ve learned enough of both to cause some damage and get the module onto CPAN and source code onto GitHub.   Actually Module::Build (especially when used with Module::Starter) & git were really simply to pick up….  most work was just getting my head around GitHub.

This is where they live:


What next?…

  • Learn more git!
  • Add more docs & tests (neither currently cover what Builder can do)
  • Add in some further developments I have here
  • Refactor it all 😉

Also when I get a moment I may blog about Builder.


PS. Below are useful links which I recommend reading before embarking on same journey….

5 Comments leave one →
  1. beppu permalink
    December 1, 2008 9:29 pm

    Congrats! 🙂

    As for which build system to use, I’ve tried them all — ExtUtils::MakeMaker, Module::Build, and Module::Install. I also think it’s a damned shame that there are 3 competing standards for something as fundamental as module installation.

  2. December 1, 2008 10:53 pm

    Thanks John.

    Yes its a shame about these competing standards but thats Perl all over I guess 😉

    I have blogged about problems with installing modules that use Module::Build in the past. Despite that I decided to stick my neck out and with all my fingers crossed hope that M::B is the future.


    • February 11, 2012 1:30 am

      The rpotsioery view will allow you to setup the remote for each of your projects and it will keep it.

  3. beppu permalink
    December 3, 2008 1:29 am

    I went back to ExtUtils::MakeMaker. Even though it’s missing a few useful features, it seems to work for the most part. I know it’s built on hack upon hack, but even people running Windows have (miraculously) been able to install Squatting and its dependencies, so …that’s good enough for me.

  4. December 3, 2008 9:52 am

    M::B is being sold as a better solution for cross platform installation because it is pure Perl so my fingers are still crossed!

    According to my CPAN test stats I got 100% pass rate so far 🙂 However there are no Windows/CygWin tests yet ;-(


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: