List of MooseX:: modules on CPAN

何か面白いものはないかと思い,CPAN上の最初のリリースではないMooseX一覧を出力するスクリプトを書いてみた。

#!perl -w
use strict;
use CPAN;
use version;
my $hatena = grep{ $_ eq '--hatena' } @ARGV;
my %processed;
foreach my $m(CPAN::Shell->expand(Module => q{/^MooseX::/})){
    my $version = $m->cpan_version;
    next if $version eq 'undef';
    next if $version =~ /\A [0\.]+ 1 0*\z/xms; # maybe the first release

    my($name) = $m->cpan_file =~ / ([\w-]+) - \Q$version\E /xms;
    next if not defined $name;
    next if $name !~ /\A MooseX /xms;
    next if $processed{$name}++;
    my $upload_date = $m->distribution->upload_date || '          ';
    if($hatena){
        printf qq{- [http://search.cpan.org/dist/%s:title=%s] - %s %s\n},
            $name, $name, qv($m->cpan_version), $upload_date;
    }
    else{
        my $author = CPAN::Shell->expand(Author => $m->userid)->fullname;
        printf "%-40s %-10s %s %s\n",
            $name, qv($m->cpan_version), $upload_date, $author;
    }
}

このスクリプトによれば,今のところ約100個のMooseXがあるようだ。
アップロード日時が取れたり取れなかったりする理由がよくわからない。

結果: