=head1 SYNOPSIS
- corelist -v
- corelist [-a|-d] <ModuleName> | /<ModuleRegex>/ [<ModuleVersion>] ...
- corelist [-v <PerlVersion>] [ <ModuleName> | /<ModuleRegex>/ ] ...
- corelist [-r <PerlVersion>] ...
- corelist --feature <FeatureName> [<FeatureName>] ...
- corelist --diff PerlVersion PerlVersion
+ corelist -v
+ corelist [-a|-d] <ModuleName> | /<ModuleRegex>/ [<ModuleVersion>] ...
+ corelist [-v <PerlVersion>] [ <ModuleName> | /<ModuleRegex>/ ] ...
+ corelist [-r <PerlVersion>] ...
+ corelist --feature <FeatureName> [<FeatureName>] ...
+ corelist --diff PerlVersion PerlVersion
+ corelist --upstream <ModuleName>
=head1 OPTIONS
lists the first version bundle of each named feature given
+=item --upstream, -u
+
+Shows if the given module is primarily maintained in perl core or on CPAN
+and bug tracker URL.
+
=back
As a special case, if you specify the module name C<Unicode>, you'll get
=cut
+BEGIN { pop @INC if $INC[-1] eq '.' }
use Module::CoreList;
-use Getopt::Long;
+use Getopt::Long qw(:config no_ignore_case);
use Pod::Usage;
use strict;
use warnings;
GetOptions(
\%Opts,
- qw[ help|?! man! r|release:s v|version:s a! d diff|D feature|f ]
+ qw[ help|?! man! r|release:s v|version:s a! d diff|D feature|f u|upstream ]
);
pod2usage(1) if $Opts{help};
print "\nModule::CoreList has release info for the following perl versions:\n";
my $versions = { };
my $max_ver_len = max_mod_len(\%Module::CoreList::released);
- for my $ver ( sort keys %Module::CoreList::released ) {
+ for my $ver ( grep !/0[01]0$/, sort keys %Module::CoreList::released ) {
printf "%-${max_ver_len}s %s\n", format_perl_version($ver), $Module::CoreList::released{$ver};
}
print "\n";
if(exists $Opts{v} ){
if( !$Opts{v} ) {
print "\nModule::CoreList has info on the following perl versions:\n";
- print format_perl_version($_)."\n" for sort keys %Module::CoreList::version;
+ print format_perl_version($_)."\n" for grep !/0[01]0$/, sort keys %Module::CoreList::version;
print "\n";
exit 0;
}
}
if ($Opts{feature}) {
+ die "\n--feature is only available with perl v5.16.0 or greater\n"
+ if $] < 5.016;
+
die "\nprovide at least one feature name to --feature\n"
unless @ARGV;
$msg .= " was ";
$msg .= "first " unless $ver;
$msg .= "released with perl " . format_perl_version($ret);
- $msg .= ( $rem ? ',' : ' and' ) . " deprecated in " . format_perl_version($deprecated) if $deprecated;
+ $msg .= ( $rem ? ',' : ' and' ) . " deprecated (will be CPAN-only) in " . format_perl_version($deprecated) if $deprecated;
$msg .= " and removed from " . format_perl_version($rem) if $rem;
} else {
$msg .= " was not in CORE (or so I think)";
print $msg,"\n";
+ if( defined $ret and exists $Opts{u} ) {
+ my $upstream = $Module::CoreList::upstream{$mod};
+ $upstream = 'undef' unless $upstream;
+ print "upstream: $upstream\n";
+ if ( $upstream ne 'blead' ) {
+ my $bugtracker = $Module::CoreList::bug_tracker{$mod};
+ $bugtracker = 'unknown' unless $bugtracker;
+ print "bug tracker: $bugtracker\n";
+ }
+ }
+
if(defined $ret and exists $Opts{a} and $Opts{a}){
display_a($mod);
}
sub display_a {
my $mod = shift;
- for my $v (grep !/000$/, sort keys %Module::CoreList::version ) {
+ for my $v (grep !/0[01]0$/, sort keys %Module::CoreList::version ) {
next unless exists $Module::CoreList::version{$v}{$mod};
my $mod_v = $Module::CoreList::version{$v}{$mod} || 'undef';