I'm in the midst of contributing my first CPAN module, and I'd like to share the experience... it seems to be both terrifying and tedious at the same time.

Tedious, because CPAN has reasonable and meaningful guidelines that nice guys like me will follow.

Terrifying, because the process makes me realize how horrible it would be if I messed up. I might upload things wrong. I have to do POD right. I have to think about new things, like Makefile.PL. I might forget something critical.

Here's the process, as far as I can remember it right now.

  1. Register your$self. PAUSE exists to provide to contributors access to CPAN. Relatively painless in and of itself, but during and after the process one feels the weight of responsibility settling onto one's back.

  2. Request a namespace. Follow the suggested method for considering namespaces, and do what they tell you. I was going to request a new top-level namespace, but then thought better of it. So I found a useful namespace that was already there; in fact, a colleague on an online forum suggested exactly the same namespace I settled on. If that ain't helpful, I don't know what is. The confirmation came via email.

  3. The scary part: upload your zipped-up module, complete with auxiliary files (README, Makefile.PL, etc!). File names are immutable and irreplaceable, even when they are deleted from CPAN. This means your uploaded file should have the version number appended to it: UWP-0.90.gz, forex.

I'm at step 3. Haven't uploaded my module yet; I'm still getting my act together and preparing for the big jump. I'm a little scared about it, but excited too. Probably blowing it up out of proportion; however, my actions, in some small way, can contribute positively to the Perl community.

So I'm taking it seriously and savoring the experience.