Which tutorials would you recommend? I know how to write a module; my problem is not knowing how to make it available without conflicting in some way with PPM (something I use without understanding). The only two that look as though they might be relevant to PPM are Installing CPAN on a Windows system, which doesn't help as I don't want to buy Visual Studio, and HowTo build and distribute a PPMed module for Win32, which is about making packages for PPM. Again, I don't - I just want to avoid conflicts. By the same token, I have no plans to release on CPAN, and am highly nervous of any book that doesn't profess in bold type that all species of U*x will be ignored utterly. I'm very much writing for Excel, and while I accept that Linux is better, I need Messware solutions and have too much experience of documentation that claims to be polyglot but is utterly incompatible with Messware in general and ActiveState in particular.
which doesn't help as I don't want to buy Visual Studio
Download a copy of Platform SDK, aslong as its as old or newer than your OS. 2003 is fine. Activestate compiles all its XS modules for its PPM tool using a circa 2002-2003 Platform SDK (or a VC 6 with circa 2003 Platform SDK headers for NT 5.1/5.2 compatibility).
my problem is not knowing how to make it available without conflicting in some way with PPM
It would be a very rare thing for such a conflict to arise. And you would have to go to quite some trouble to create a conflict that could not be resolved trivially. Is there something in particular about your module that's making you wary in this regard ?
Unless your module overwrites the files that PPM uses internally (all of which reside in your perl installation), I can't see that any such concern is warranted - especially if the module is not going to be installed via PPM, and if there's not even a PPM package for it.
Many thanks - that's the answer I was hoping to get! I was in the position of knowing enough to be scared but not enough to be confident, since I didn't know how PPM might react to seeing a module that wasn't in one of its repositories. Not being able to find anything by searching didn't help, either.