⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 corelist

📁 source of perl for linux application,
💻
字号:
#!/usr/bin/perl=head1 NAMEcorelist - a commandline frontend to Module::CoreList=head1 DESCRIPTIONSee L<Module::CoreList> for one.=head1 SYNOPSIS    corelist -v    corelist [-a] <ModuleName> | /<ModuleRegex>/ [<ModuleVersion>] ...    corelist [-v <PerlVersion>] [ <ModuleName> | /<ModuleRegex>/ ] ...=head1 OPTIONS=over=item -a modulenamelists all versions of the given module (or the matching modules, in case youused 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 -? or -helphelp! help! help! to see more help, try --man.=item -manall of the help=item -vlists 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.=backAs a special case, if you specify the module name C<Unicode>, you'll getthe version number of the Unicode Character Database bundled with therequested perl versions.=cutuse Module::CoreList;use Getopt::Long;use Pod::Usage;use strict;use warnings;my %Opts;GetOptions(\%Opts, qw[ help|?! man! v|version:f a! ] );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} );    if( !exists $Module::CoreList::version{$Opts{v}} ) {        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 "$_ ", $Module::CoreList::version{$Opts{v}}{$_} || " ","\n"	for sort keys %{$Module::CoreList::version{$Opts{v}}};	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} ) {        return printf "  %-24s %-10s\n",            $mod,            $Module::CoreList::version{$Opts{v}}{$mod} || 'undef';    }    my $ret = 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 ( index( $ver, q{.}, index( $ver, q{.} ) ) >= 0 ) {	eval { require version };	if ($@) {	    die "You need to install version.pm to use dotted version numbers\n";	}        $ver = version->new($ver)->numify;    }    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 COPYRIGHTCopyright (c) 2002-2007 by D.H. aka PodMasterCurrently 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -