diff options
Diffstat (limited to 'Master/tlpkg/tlperl/bin/corelist')
-rwxr-xr-x | Master/tlpkg/tlperl/bin/corelist | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/Master/tlpkg/tlperl/bin/corelist b/Master/tlpkg/tlperl/bin/corelist deleted file mode 100755 index b59aef34776..00000000000 --- a/Master/tlpkg/tlperl/bin/corelist +++ /dev/null @@ -1,272 +0,0 @@ -#!/usr/bin/perl - -=head1 NAME - -corelist - a commandline frontend to Module::CoreList - -=head1 DESCRIPTION - -See L<Module::CoreList> for one. - -=head1 SYNOPSIS - - corelist -v - corelist [-a|-d] <ModuleName> | /<ModuleRegex>/ [<ModuleVersion>] ... - corelist [-v <PerlVersion>] [ <ModuleName> | /<ModuleRegex>/ ] ... - -=head1 OPTIONS - -=over - -=item -a - -lists all versions of the given module (or the matching modules, in case you -used a module regexp) in the perls Module::CoreList knows about. - - corelist -a utf8 - - utf8 was first released with perl 5.006 - 5.006 undef - 5.006001 undef - 5.006002 undef - 5.007003 1.00 - 5.008 1.00 - 5.008001 1.02 - 5.008002 1.02 - 5.008003 1.02 - 5.008004 1.03 - 5.008005 1.04 - 5.008006 1.04 - 5.008007 1.05 - 5.008008 1.06 - 5.009 1.02 - 5.009001 1.02 - 5.009002 1.04 - 5.009003 1.06 - -=item -d - -finds the first perl version where a module has been released by -date, and not by version number (as is the default). - -=item -? or -help - -help! help! help! to see more help, try --man. - -=item -man - -all of the help - -=item -v - -lists all of the perl release versions we got the CoreList for. - -If you pass a version argument (value of C<$]>, like C<5.00503> or C<5.008008>), -you get a list of all the modules and their respective versions. -(If you have the C<version> module, you can also use new-style version numbers, -like C<5.8.8>.) - -In module filtering context, it can be used as Perl version filter. - -=back - -As a special case, if you specify the module name C<Unicode>, you'll get -the version number of the Unicode Character Database bundled with the -requested perl versions. - -=cut - -use Module::CoreList; -use Getopt::Long; -use Pod::Usage; -use strict; -use warnings; - -my %Opts; - -GetOptions(\%Opts, qw[ help|?! man! v|version:f a! d ] ); - -pod2usage(1) if $Opts{help}; -pod2usage(-verbose=>2) if $Opts{man}; - -if(exists $Opts{v} ){ - if( !$Opts{v} ) { - print "\nModule::CoreList has info on the following perl versions:\n"; - print "$_\n" for sort keys %Module::CoreList::version; - print "\n"; - exit 0; - } - - $Opts{v} = numify_version( $Opts{v} ); - my $version_hash = Module::CoreList->find_version($Opts{v}); - if( !$version_hash ) { - print "\nModule::CoreList has no info on perl v$Opts{v}\n\n"; - exit 1; - } - - if ( !@ARGV ) { - print "\nThe following modules were in perl v$Opts{v} CORE\n"; - print "$_ ", $version_hash->{$_} || " ","\n" - for sort keys %$version_hash; - print "\n"; - exit 0; - } -} - -if ( !@ARGV ) { - pod2usage(0); -} - -while (@ARGV) { - my ($mod, $ver); - if ($ARGV[0] =~ /=/) { - ($mod, $ver) = split /=/, shift @ARGV; - } else { - $mod = shift @ARGV; - $ver = (@ARGV && $ARGV[0] =~ /^\d/) ? shift @ARGV : ""; - } - - if ($mod !~ m|^/(.*)/([imosx]*)$|) { # not a regex - module_version($mod,$ver); - } else { - my $re; - eval { $re = $2 ? qr/(?$2)($1)/ : qr/$1/; }; # trap exceptions while building regex - if ($@) { - # regex errors are usually like 'Quantifier follow nothing in regex; marked by ...' - # then we drop text after ';' to shorten message - my $errmsg = $@ =~ /(.*);/ ? $1 : $@; - warn "\n$mod is a bad regex: $errmsg\n"; - next; - } - my @mod = Module::CoreList->find_modules($re); - if (@mod) { - module_version($_, $ver) for @mod; - } else { - $ver |= ''; - print "\n$mod $ver has no match in CORE (or so I think)\n"; - } - - } -} - -exit(); - -sub module_version { - my($mod,$ver) = @_; - - if ( $Opts{v} ) { - my $version_hash = Module::CoreList->find_version($Opts{v}); - if ($version_hash) { - print $mod, " ", $version_hash->{$mod} || 'undef', "\n"; - return; - } - else { die "Shouldn't happen" } - } - - my $ret = $Opts{d} - ? Module::CoreList->first_release_by_date(@_) - : Module::CoreList->first_release(@_); - my $msg = $mod; - $msg .= " $ver" if $ver; - - if( defined $ret ) { - $msg .= " was "; - $msg .= "first " unless $ver; - $msg .= "released with perl $ret" - } else { - $msg .= " was not in CORE (or so I think)"; - } - - print "\n",$msg,"\n"; - - if(defined $ret and exists $Opts{a} and $Opts{a}){ - for my $v( - sort keys %Module::CoreList::version ){ - - printf " %-10s %-10s\n", - $v, - $Module::CoreList::version{$v}{$mod} - || 'undef' - if exists $Module::CoreList::version{$v}{$mod}; - } - print "\n"; - } -} - -sub numify_version { - my $ver = shift; - if ($ver =~ /\..+\./) { - eval { require version ; 1 } - or die "You need to install version.pm to use dotted version numbers\n"; - $ver = version->new($ver)->numify; - } - $ver += 0; - return $ver; -} - -=head1 EXAMPLES - - $ corelist File::Spec - - File::Spec was first released with perl 5.005 - - $ corelist File::Spec 0.83 - - File::Spec 0.83 was released with perl 5.007003 - - $ corelist File::Spec 0.89 - - File::Spec 0.89 was not in CORE (or so I think) - - $ corelist File::Spec::Aliens - - File::Spec::Aliens was not in CORE (or so I think) - - $ corelist /IPC::Open/ - - IPC::Open2 was first released with perl 5 - - IPC::Open3 was first released with perl 5 - - $ corelist /MANIFEST/i - - ExtUtils::Manifest was first released with perl 5.001 - - $ corelist /Template/ - - /Template/ has no match in CORE (or so I think) - - $ corelist -v 5.8.8 B - - B 1.09_01 - - $ corelist -v 5.8.8 /^B::/ - - B::Asmdata 1.01 - B::Assembler 0.07 - B::Bblock 1.02_01 - B::Bytecode 1.01_01 - B::C 1.04_01 - B::CC 1.00_01 - B::Concise 0.66 - B::Debug 1.02_01 - B::Deparse 0.71 - B::Disassembler 1.05 - B::Lint 1.03 - B::O 1.00 - B::Showlex 1.02 - B::Stackobj 1.00 - B::Stash 1.00 - B::Terse 1.03_01 - B::Xref 1.01 - -=head1 COPYRIGHT - -Copyright (c) 2002-2007 by D.H. aka PodMaster - -Currently maintained by the perl 5 porters E<lt>perl5-porters@perl.orgE<gt>. - -This program is distributed under the same terms as perl itself. -See http://perl.org/ or http://cpan.org/ for more info on that. - -=cut |