Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Alias (5735)

  (email not shown publicly)

Journal of Alias (5735)

Tuesday October 13, 2009
07:00 PM

Would you like to implement a CPAN download counter?

[ #39748 ]

The subject of download counters for CPAN modules has risen yet again, as it does every few years.

This time around, I'm ready for it.

For the last few years, I've been running

This is not a mirror as such, it is a redirect server that acts as the default CPAN mirror for Strawberry's pre-configured CPAN client. It runs via a simple .htaccess file pointing at whatever the most interesting of safely reliable mirror of the moment is, and I'm able to repoint it instantly.

It doesn't necessarily provide the fastest mirror, but it does provide something that won't be slow and is assured not to break (unlike the DNS rotation or geo-redirect services, which can't always tell when one of their members breaks).

One of the luxuries of this redirect mechanism is that I have logs, going back about 400 days, of every module that a Strawberry Perl user who is happy to live with the default mirror has downloaded.

If anyone is interested in coming up with a log processor for this data set to build some kind of analysis tool, I'd be happy to provide you with access.

One of the benefits of this is that I can upgrade my CPAN Top 100 lists with demand-weighted scoring, so that we can better map CPAN Testers failures to the actual daily needs of Windows Perl hackers and identify which are the modules that we need to focus the most attention on.

You can find me, or one of the other people with access to the cpan.strawberry logs, in the #win32 channel on

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • I look forward to seeing this data aggregated (like you suggest) some way in CPANDB.
  • that this data is (basically) only for Strawberry perl default distribution use of CPAN?

    I think it would be lovely if all module downloads first registered the download (if possible) at a counter before actually using bandwidth of a mirror.

    • It can't work that way.

      CPAN pulls not just the tarballs, but also (and more importantly) the package indexes from the mirror. This full distributeness and zero single-point-of-failure design is what makes things like minicpan and private frozen corporate mirrors possible so easily.