From dd99222174249c21cd2ee296fab66bf7ab5680b5 Mon Sep 17 00:00:00 2001 From: Leon Brocard Date: Thu, 23 Jun 2011 15:26:12 +0100 Subject: [PATCH] Extract the code the maps from an author/distribution to a CPAN URL into its own subroutine: cpan_url_distribution() in Porting/core-cpan-diff --- Porting/core-cpan-diff | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Porting/core-cpan-diff b/Porting/core-cpan-diff index 592dd49..8cabf2c 100644 --- a/Porting/core-cpan-diff +++ b/Porting/core-cpan-diff @@ -187,6 +187,17 @@ sub cpan_url { return $mirror_url . $cpan_path; } +# construct a CPAN URL for a author/distribution string like: +# BINGOS/Archive-Extract-0.52.tar.gz + +sub cpan_url_distribution { + my ( $mirror_url, $distribution ) = @_; + $distribution =~ /^([A-Z])([A-Z])/ + or die "ERROR: invalid DISTRIBUTION name (not /^[A-Z]{2}/): $distribution\n"; + my $path = "modules/by-authors/id/$1/$1$2/$distribution"; + return cpan_url( $mirror_url, $path ); +} + # compare a list of modules against their CPAN equivalents sub do_compare { @@ -621,12 +632,7 @@ sub get_distribution { unless ( -f $download_file ) { # not cached - $dist =~ /^([A-Z])([A-Z])/ - or die -"ERROR: $module: invalid DISTRIBUTION name (not /^[A-Z]{2}/): $dist\n"; - - my $url = - cpan_url( $mirror_url, "modules/by-authors/id/$1/$1$2/$dist" ); + my $url = cpan_url_distribution( $mirror_url, $dist ); my_getstore( $url, $download_file ) or die "ERROR: Could not fetch '$url'\n"; } -- 2.7.4