No, it doesn't handle every file extension. Nor every package. Nor does it take parameters. Yes, you have to modify the source to make it do anything useful for you. No, I'm not particularly concerned. Just thought someone might be amused by it =)
For something more useful: DateTime::Format::Excel (docs).
#!/usr/bin/perl -w use strict; use YAML; use PerlIO::gzip; my $packages = do { my %packages; open my $pkgs_fh, '<:gzip', 'minicpan/modules/02packages.details.txt.gz' or die "Cannot open pkgs: $!\n"; while (<$pkgs_fh>) { $packages{$2} = $1 if m[ ^ \S+ \s+ \S+ \s+ [A-Z]/[A-Z][A-Z]/([A-Z]+)/(\S+)(?:\.(?:tar\.gz|zip)) $ ]x; } close $pkgs_fh; \%packages; }; print "Read the details of ".(keys %$packages)." packages.\n"; my %authors; while () { chomp; printf "%30.30s => %s\n", $_, $packages->{$_}; push @{ $authors{ $packages->{$_} } } , $_; } print Dump(\%authors); __DATA__ Acme-Hello-0.02 Apache-Filter-1.022 B-Generate-1.06 Class-Container-0.10 Crypt-SKey-0.06 HTML-SimpleParse-0.11 Module-Build-0.16 Test-Signature-1.03 Text-WikiFormat-0.6 Thesaurus-0.21 WWW-SherlockSearch-0.14 WWW-Shorten-1.5.6 WWW-Yahoo-Groups-1.7.7 XML-RSS-Aggregate-0.02 optimize-0.03 types-0.05