Tatsuhiko Miyagawa's Blog

Perl versions usage stats (with cpanm)

March 12, 2013

A week ago I added a neat little feature in cpanm 1.6004 to report its perl versions in User-Agent strings (regardless of whether it uses LWP, curl, wget or HTTP::Tiny) in addition to cpanm’s own version.

One week later, there seems more than 60% of the users seem to have upgraded (including people who runs curl -L cpanmin.us which always run the latest stable), and we get a pretty interesting number.

(In case you’re wondering: the big ones are 5.8.8, 5.10.1, 5.14.2 and 5.16.2. Graph on the link uses google chart API which allows you to hover over the graph to see which portion represents which perl version)

Perl versions used with cpanm is a graph calculated out of 10K recent requests in CPAN Meta DB uniqued by the IP address, updated daily on 1am UTC.

The graph can be viewed using ?date=YYYYMMDD permanent link as well.

Few notes: This does not reflect (yet) the users who use older versions of cpanm, which may or may not be the installation which tend to use older versions of perl. It also doesn’t include cpanm users who uses — mirror-only to work with local CPAN mirrors without hitting CPAN Meta DB nor MetaCPAN. I believe these numbers can be either a) so small that it’s ignorable or b) significant, but spread across many versions in the same way those who don’t.

The number might look low for the recent 10K requests. There are several reasons, but the biggest one is that many requests will end up with pulling 10+ CPAN dependencies, which are (correctly) deduplicated into one.

It’s just one metric, and I don’t argue that it’s accurate, but I believe it’s not that far away, and would be interesting to see how it settles over time.