Acme-CPANAuthors
view release on metacpan or search on metacpan
lib/Acme/CPANAuthors/Utils.pm view on Meta::CPAN
sub _cpan_file {
my ($dir, $basename) = @_;
my $file;
if ($ENV{ACME_CPANAUTHORS_HOME}) {
$file = _catfile($ENV{ACME_CPANAUTHORS_HOME}, $dir, $basename);
return $file if $file && -r $file;
}
require File::Path;
for my $parent (File::Spec->tmpdir, '.') {
my $tmpdir = File::Spec->catdir($parent, '.acmecpanauthors', $dir);
eval { File::Path::mkpath($tmpdir) };
next unless -d $tmpdir && -r _;
$file = _catfile($tmpdir, $basename);
my $how_old = -M $file;
if (!-r $file or !$how_old or $how_old > 1) {
require HTTP::Tiny;
my $ua = HTTP::Tiny->new(env_proxy => 1);
my $res = $ua->mirror('http://www.cpan.org/'.$dir.'/'.$basename, $file);
next unless $res->{success};
}
( run in 0.292 second using v1.01-cache-2.11-cpan-4d50c553e7e )