CPAN-Perl-Releases

 view release on metacpan or  search on metacpan

lib/CPAN/Perl/Releases.pm  view on Meta::CPAN

"5.38.3-RC1" => { id => 'SHAY' },
"5.40.1-RC1" => { id => 'SHAY' },
"5.38.3" => { id => 'SHAY' },
"5.40.1" => { id => 'SHAY' },
"5.41.8" => { id => 'SHAY' },
"5.41.9" => { id => 'HYDAHY' },
"5.38.4-RC1" => { id => 'SHAY' },
"5.40.2-RC1" => { id => 'SHAY' },
"5.38.4" => { id => 'SHAY' },
"5.40.2" => { id => 'SHAY' },
"5.41.11" => { id => 'ETHER' },
"5.41.12" => { id => 'ETHER' },
"5.41.13" => { id => 'BOOK' },
"5.42.0-RC1" => { id => 'CONTRA' },
"5.42.0-RC2" => { id => 'CONTRA' },
"5.42.0-RC3" => { id => 'CONTRA' },
"5.42.0" => { id => 'BOOK' },
"5.43.1" => { id => 'HYDAHY' },
"5.38.5-RC1" => { id => 'SHAY' },
"5.40.3-RC1" => { id => 'SHAY' },
"5.38.5" => { id => 'SHAY' },
"5.40.3" => { id => 'SHAY' },
"5.43.2" => { id => 'ETHER' },
"5.43.3" => { id => 'CONTRA' },
"5.43.4" => { id => 'EHERMAN' },
"5.43.5" => { id => 'CONTRA' },
"5.43.6" => { id => 'SHAY' },
"5.43.7" => { id => 'CORION' },
"5.43.8" => { id => 'HYDAHY' },
"5.42.1-RC1" => { id => 'SHAY' },
"5.42.1" => { id => 'SHAY' },
"5.43.9" => { id => 'EHERMAN' },
"5.40.4-RC1" => { id => 'SHAY' },
"5.42.2-RC1" => { id => 'SHAY' },
"5.40.4" => { id => 'SHAY' },
"5.42.2" => { id => 'SHAY' },
"5.43.10" => { id => 'BOOK' },
"5.43.11" => { id => 'PEVANS' },
};

sub perl_tarballs {
  my $vers = shift;
  return unless defined $vers;
  $vers = shift if eval { $vers->isa(__PACKAGE__) };
  return unless exists $data->{ $vers };
  if ( exists $cache->{ $vers } ) {
    return { %{ $cache->{ $vers } } };
  }
  my $pumpkin = $data->{ $vers }->{id};
  my $path = join '/', substr( $pumpkin, 0, 1 ), substr( $pumpkin, 0, 2 ), $pumpkin;
  my $sep = ( $vers =~ m!^5\.0! ? '' : '-' );
  my $perl = join $sep, 'perl', $vers;
  my $onlygz = 1 if $vers =~ m!(?-xism:5.(?:00(?:4(?:_0[12345])?|5(?:_0[1234])?|3_07)|1(?:0.0(?:-RC[12])?|6.0-RC0)|6.(?:[02]|1(?:-TRIAL[123])?)|9.[12345]|7.[0123]|8.[01]))! || $data->{ $vers }->{onlygz};
  my $onlybz2 = 1 if $data->{ $vers }->{onlybz2};
  my $noxz = 1 if $data->{ $vers }->{noxz};
  my $lvers;
  {
    my $tvers = $vers;
    $tvers =~ s!\-?(TRIAL|RC)\d*!!g;
    $tvers =~ s!_!.!g;
    my @parts = split m!\.!, $tvers;
    push @parts, 0 if scalar @parts < 3;
    $lvers = sprintf("%d.%03d%03d",@parts);
  }
  my $foo = { };
  $foo->{'tar.gz'} = "$path/$perl.tar.gz" unless $onlybz2;
  $foo->{'tar.bz2'} = "$path/$perl.tar.bz2" unless $onlygz || $lvers > 5.027005;
  $foo->{'tar.xz'} = "$path/$perl.tar.xz" if $lvers > 5.021005 && !$noxz;
  delete $foo->{'tar.bz2'} if $pumpkin eq 'SHAY' && $lvers < 5.028000;
  $cache->{ $vers } = $foo;
  return { %$foo };
}

sub perl_versions {
    return sort _by_version keys %$data;
}


sub _by_version {
  my %v = map {
    my @v = split(qr/[-._]0*/, $_);
    $v[2] ||= 0;
    $v[3] ||= 'Z';
    ($_ => sprintf '%d.%03d%03d-%s', @v)
  } $a, $b;
  $v{$a} cmp $v{$b};
}

sub perl_pumpkins {
    my %pumps = map { ( $data->{$_}->{id} => 1 ) } keys %$data;
    return sort keys %pumps;
}

q|Acme::Why::Did::I::Not::Read::The::Fecking::Memo|;

__END__

=pod

=encoding UTF-8

=head1 NAME

CPAN::Perl::Releases - Mapping Perl releases on CPAN to the location of the tarballs

=head1 VERSION

version 5.20260601

=head1 SYNOPSIS

  use CPAN::Perl::Releases qw[perl_tarballs];

  my $perl = '5.14.0';

  my $hashref = perl_tarballs( $perl );

  print "Location: ", $_, "\n" for values %{ $hashref };

=head1 DESCRIPTION



( run in 1.137 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )