Perl-Repository-APC
view release on metacpan or search on metacpan
lib/Perl/Repository/APC.pm view on Meta::CPAN
tarfile => "perl-5.8.1.tar.gz",
},
"5.8.2" => {
tarfile => "perl-5.8.2.tar.gz",
},
"5.8.3" => {
tarfile => "perl-5.8.3.tar.gz",
},
"5.8.4" => {
tarfile => "perl-5.8.4.tar.gz",
},
"5.8.5" => {
tarfile => "perl-5.8.5.tar.gz",
},
"5.8.6" => {
tarfile => "perl-5.8.6.tar.gz",
},
"5.8.7" => {
tarfile => "perl-5.8.7.tar.gz",
},
"5.8.8" => {
tarfile => "perl-5.8.8.tar.gz",
},
"5.9.0" => {
tarfile => "perl-5.9.0.tar.gz",
},
"5.9.1" => {
tarfile => "perl-5.9.1.tar.gz",
},
"5.9.2" => {
tarfile => "perl-5.9.2.tar.gz",
},
"5.9.3" => {
tarfile => "perl-5.9.3.tar.gz",
},
"5.9.4" => {
tarfile => "perl-5.9.4.tar.gz",
},
"5.9.5" => {
tarfile => "perl-5.9.5.tar.gz",
},
"5.10.0" => {
tarfile => "perl-5.10.0.tar.gz",
},
);
sub new {
unless (@_ == 2){
require Carp;
Carp::croak(sprintf "Not enough arguments for %s -> new ()\n", __PACKAGE__);
}
my $proto = shift;
my $class = ref $proto || $proto;
my $dir = shift;
my $self;
$self->{DIR} = $dir;
$self->{APC} = [_apc_struct($dir)];
bless $self => $class;
}
sub apcdirs {
my($self) = @_;
@{$self->{APC}};
}
sub tarball {
unless (@_ == 2){
require Carp;
Carp::croak(sprintf "Not enough arguments for %s -> tarball ()\n", __PACKAGE__);
}
my($self,$pver) = @_;
unless ($pver){
require Carp;
Carp::croak(sprintf "No version argument for %s -> tarball ()\n", __PACKAGE__);
}
my $DIR = File::Spec->catdir($self->{DIR},$pver);
my $dir;
unless (opendir $dir, $DIR) {
return $self->_from_additional_tarballs($pver);
}
my(@dirent) = grep !/RC|TRIAL/, grep /^perl.*\.tar\.gz$/, readdir $dir;
closedir $dir;
if (@dirent>1){
die "\aALERT: (\@dirent > 1: @dirent) in $pver" ;
} elsif (@dirent==0) {
return $self->_from_additional_tarballs($pver);
}
$dirent[0];
}
sub _from_additional_tarballs {
my($self,$pver) = @_;
die "unsupported perl version '$pver'", unless exists $tarballs{$pver};
my $tarball = $tarballs{$pver}{tarfile};
my $cwd = Cwd::cwd();
my $addltar = File::Spec->catfile
(
$self->{DIR},
"additional_tarballs",
$tarball,
);
if (-f $addltar){
return $addltar;
} else {
die "tarball '$tarball' not found. Have you mirrored the additional_tarballs directory?\n";
}
}
sub patches {
my($self,$ver) = @_;
unless ($ver) {
require Carp;
Carp::confess("patches called without ver[$ver]");
}
my @res;
for my $apcdir (@{$self->{APC}}) {
my $pver = $apcdir->{perl};
( run in 0.597 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )