package Module::CoreList;
use strict;
-use vars qw/$VERSION %released %version %families/;
+use vars qw/$VERSION %released %patchlevel %version %families/;
$VERSION = '2.01';
=head1 NAME
print join ", ", @{ $Module::CoreList::families{5.005} };
# prints "5.005, 5.00503, 5.00504"
+ print join " ", @{ $Module::CoreList::patchlevel{5.008001} };
+ # prints "maint-5.8 21377"
+
=head1 DESCRIPTION
Module::CoreList contains the hash of hashes
that's what you're testing for.
It also contains %Module::CoreList::released hash, which has ISO
-formatted versions of the release dates, as gleaned from L<perlhist>
+formatted versions of the release dates, as gleaned from L<perlhist>.
New, in 1.96 is also the %Module::CoreList::families hash, which
clusters known perl releases by their major versions.
+In 2.01 %Module::CoreList::patchlevel contains the branch and patchlevel
+corresponding to the specified perl version in the Perforce repository where
+the perl sources are kept.
+
=head1 CAVEATS
Module::CoreList currently only covers the 5.000, 5.001, 5.002, 5.003_07,
5.009002 => '2005-04-01',
);
+# perforce branches and patch levels
+%patchlevel = (
+ 5.005 => [perl => 1647],
+ 5.00503 => ['maint-5.005' => 3198],
+ 5.00405 => ['maint-5.004' => 999],
+ 5.006 => [perl => 5899],
+ 5.006001 => ['maint-5.6' => 9654],
+ 5.006002 => ['maint-5.6' => 21727],
+ 5.007003 => [perl => 15039],
+ 5.008 => [perl => 17637],
+ 5.008001 => ['maint-5.8' => 21377],
+ 5.008002 => ['maint-5.8' => 21670],
+ 5.009 => [perl => 21539],
+ 5.008003 => ['maint-5.8' => 22151],
+ 5.00504 => ['maint-5.005' => 22270],
+ 5.009001 => [perl => 22506],
+ 5.008004 => ['maint-5.8' => 22729],
+ 5.008005 => ['maint-5.8' => 23139],
+ 5.008006 => ['maint-5.8' => 23552],
+ 5.009002 => [perl => 24131],
+);
+
for my $version ( sort { $a <=> $b } keys %released ) {
my $family = int ($version * 1000) / 1000;
push @{ $families{ $family }} , $version;