#!/usr/local/bin/perl use strict; use warnings; use LWP::Simple; my $source = get("http://www.perl.com/CPAN/modules/02packages.details.txt"); my $fh; open $fh, '>', '02packages.details.txt' or die; print $fh $source; close $fh; my @packages; my @dists; my %dists; open $fh, '<', '02packages.details.txt' or die; while (<$fh>) { chomp; my ( $package, $ver, $dist ) = $_ =~ /^(.+?)\s+(.+?)\s+(.+)$/; next unless $package; next if $package =~ /:$/; unless ( $dists{$dist} ) { $dists{$dist} = $package; push @dists, $package; } push @packages, $package; } close $fh; open $fh, '>', 'list' or die; print $fh join( "\n", @packages ); close $fh; open $fh, '>', 'dist' or die; print $fh join( "\n", @dists ); close $fh;