亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? metadata.pm

?? 這是一個DFA簡化和生成LL(1)分析表的程序,自動生成表格及圖形
?? PM
字號:
#line 1
package Module::Install::Metadata;

use Module::Install::Base;
@ISA = qw{Module::Install::Base};

$VERSION = '0.61';

use strict 'vars';

my @scalar_keys = qw{
    name module_name abstract author version license
    distribution_type perl_version tests
};

my @tuple_keys = qw{
    build_requires requires recommends bundles
};

sub Meta            { shift        }
sub Meta_ScalarKeys { @scalar_keys }
sub Meta_TupleKeys  { @tuple_keys  }

foreach my $key (@scalar_keys) {
    *$key = sub {
        my $self = shift;
        return $self->{values}{$key} if defined wantarray and !@_;
        $self->{values}{$key} = shift;
        return $self;
    };
}

foreach my $key (@tuple_keys) {
    *$key = sub {
        my $self = shift;
        return $self->{values}{$key} unless @_;

        my @rv;
        while (@_) {
            my $module = shift or last;
            my $version = shift || 0;
            if ( $module eq 'perl' ) {
                $version =~ s{^(\d+)\.(\d+)\.(\d+)}
                             {$1 + $2/1_000 + $3/1_000_000}e;
                $self->perl_version($version);
                next;
            }
            my $rv = [ $module, $version ];
            push @rv, $rv;
        }
        push @{ $self->{values}{$key} }, @rv;
        @rv;
    };
}

sub sign {
    my $self = shift;
    return $self->{'values'}{'sign'} if defined wantarray and !@_;
    $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 );
    return $self;
}

sub dynamic_config {
	my $self = shift;
	unless ( @_ ) {
		warn "You MUST provide an explicit true/false value to dynamic_config, skipping\n";
		return $self;
	}
	$self->{'values'}{'dynamic_config'} = $_[0] ? 1 : 0;
	return $self;
}

sub all_from {
    my ( $self, $file ) = @_;

    unless ( defined($file) ) {
        my $name = $self->name
            or die "all_from called with no args without setting name() first";
        $file = join('/', 'lib', split(/-/, $name)) . '.pm';
        $file =~ s{.*/}{} unless -e $file;
        die "all_from: cannot find $file from $name" unless -e $file;
    }

    $self->version_from($file)      unless $self->version;
    $self->perl_version_from($file) unless $self->perl_version;

    # The remaining probes read from POD sections; if the file
    # has an accompanying .pod, use that instead
    my $pod = $file;
    if ( $pod =~ s/\.pm$/.pod/i and -e $pod ) {
        $file = $pod;
    }

    $self->author_from($file)   unless $self->author;
    $self->license_from($file)  unless $self->license;
    $self->abstract_from($file) unless $self->abstract;
}

sub provides {
    my $self     = shift;
    my $provides = ( $self->{values}{provides} ||= {} );
    %$provides = (%$provides, @_) if @_;
    return $provides;
}

sub auto_provides {
    my $self = shift;
    return $self unless $self->is_admin;

    unless (-e 'MANIFEST') {
        warn "Cannot deduce auto_provides without a MANIFEST, skipping\n";
        return $self;
    }

    # Avoid spurious warnings as we are not checking manifest here.

    local $SIG{__WARN__} = sub {1};
    require ExtUtils::Manifest;
    local *ExtUtils::Manifest::manicheck = sub { return };

    require Module::Build;
    my $build = Module::Build->new(
        dist_name    => $self->{name},
        dist_version => $self->{version},
        license      => $self->{license},
    );
    $self->provides(%{ $build->find_dist_packages || {} });
}

sub feature {
    my $self     = shift;
    my $name     = shift;
    my $features = ( $self->{values}{features} ||= [] );

    my $mods;

    if ( @_ == 1 and ref( $_[0] ) ) {
        # The user used ->feature like ->features by passing in the second
        # argument as a reference.  Accomodate for that.
        $mods = $_[0];
    } else {
        $mods = \@_;
    }

    my $count = 0;
    push @$features, (
        $name => [
            map {
                ref($_) ? ( ref($_) eq 'HASH' ) ? %$_
                                                : @$_
                        : $_
            } @$mods
        ]
    );

    return @$features;
}

sub features {
    my $self = shift;
    while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) {
        $self->feature( $name, @$mods );
    }
    return $self->{values}->{features}
    	? @{ $self->{values}->{features} }
    	: ();
}

sub no_index {
    my $self = shift;
    my $type = shift;
    push @{ $self->{values}{no_index}{$type} }, @_ if $type;
    return $self->{values}{no_index};
}

sub read {
    my $self = shift;
    $self->include_deps( 'YAML', 0 );

    require YAML;
    my $data = YAML::LoadFile('META.yml');

    # Call methods explicitly in case user has already set some values.
    while ( my ( $key, $value ) = each %$data ) {
        next unless $self->can($key);
        if ( ref $value eq 'HASH' ) {
            while ( my ( $module, $version ) = each %$value ) {
                $self->can($key)->($self, $module => $version );
            }
        }
        else {
            $self->can($key)->($self, $value);
        }
    }
    return $self;
}

sub write {
    my $self = shift;
    return $self unless $self->is_admin;
    $self->admin->write_meta;
    return $self;
}

sub version_from {
    my ( $self, $file ) = @_;
    require ExtUtils::MM_Unix;
    $self->version( ExtUtils::MM_Unix->parse_version($file) );
}

sub abstract_from {
    my ( $self, $file ) = @_;
    require ExtUtils::MM_Unix;
    $self->abstract(
        bless(
            { DISTNAME => $self->name },
            'ExtUtils::MM_Unix'
        )->parse_abstract($file)
     );
}

sub _slurp {
    my ( $self, $file ) = @_;

    local *FH;
    open FH, "< $file" or die "Cannot open $file.pod: $!";
    do { local $/; <FH> };
}

sub perl_version_from {
    my ( $self, $file ) = @_;

    if (
        $self->_slurp($file) =~ m/
        ^
        use \s*
        v?
        ([\d\.]+)
        \s* ;
    /ixms
      )
    {
        $self->perl_version($1);
    }
    else {
        warn "Cannot determine perl version info from $file\n";
        return;
    }
}

sub author_from {
    my ( $self, $file ) = @_;
    my $content = $self->_slurp($file);
    if ($content =~ m/
        =head \d \s+ (?:authors?)\b \s*
        ([^\n]*)
        |
        =head \d \s+ (?:licen[cs]e|licensing|copyright|legal)\b \s*
        .*? copyright .*? \d\d\d[\d.]+ \s* (?:\bby\b)? \s*
        ([^\n]*)
    /ixms) {
        my $author = $1 || $2;
        $author =~ s{E<lt>}{<}g;
        $author =~ s{E<gt>}{>}g;
        $self->author($author); 
    }
    else {
        warn "Cannot determine author info from $file\n";
    }
}

sub license_from {
    my ( $self, $file ) = @_;

    if (
        $self->_slurp($file) =~ m/
        =head \d \s+
        (?:licen[cs]e|licensing|copyright|legal)\b
        (.*?)
        (=head\\d.*|=cut.*|)
        \z
    /ixms
      )
    {
        my $license_text = $1;
        my @phrases      = (
            'under the same (?:terms|license) as perl itself' => 'perl',
            'GNU public license'                              => 'gpl',
            'GNU lesser public license'                       => 'gpl',
            'BSD license'                                     => 'bsd',
            'Artistic license'                                => 'artistic',
            'GPL'                                             => 'gpl',
            'LGPL'                                            => 'lgpl',
            'BSD'                                             => 'bsd',
            'Artistic'                                        => 'artistic',
        );
        while ( my ( $pattern, $license ) = splice( @phrases, 0, 2 ) ) {
            $pattern =~ s{\s+}{\\s+}g;
            if ( $license_text =~ /\b$pattern\b/i ) {
                $self->license($license);
                return 1;
            }
        }
    }

    warn "Cannot determine license info from $file\n";
    return 'unknown';
}

1;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av综合在线播放| 精品国产电影一区二区| 51精品视频一区二区三区| 欧美变态口味重另类| 亚洲理论在线观看| 激情综合色播五月| 欧美日韩精品欧美日韩精品一综合| 久久综合九色综合欧美98| 夜色激情一区二区| 99精品在线观看视频| 337p粉嫩大胆色噜噜噜噜亚洲 | 91在线云播放| 精品欧美黑人一区二区三区| 亚洲综合激情小说| a亚洲天堂av| 久久久91精品国产一区二区精品| 免费成人深夜小野草| 在线观看亚洲精品视频| 中文字幕一区二区三区蜜月| 国内一区二区视频| 欧美mv日韩mv国产网站| 亚洲va欧美va国产va天堂影院| 91视频一区二区| 国产精品久久久久久久久免费相片| 韩国在线一区二区| 日韩一级二级三级精品视频| 丝袜美腿亚洲综合| 欧美日韩中文字幕一区| 一区二区三区中文字幕电影 | 另类综合日韩欧美亚洲| 91麻豆精品国产91久久久使用方法 | 中文字幕一区日韩精品欧美| 国产在线精品免费av| 日韩一区二区免费在线观看| 日本va欧美va精品发布| 欧美一区二区久久久| 午夜精品123| 欧美一区二区国产| 麻豆久久一区二区| 久久久精品人体av艺术| 福利电影一区二区三区| 国产精品情趣视频| 99re这里只有精品首页| 亚洲色欲色欲www| 91啪在线观看| 香蕉久久一区二区不卡无毒影院 | 日韩二区在线观看| 精品日韩一区二区三区免费视频| 另类小说综合欧美亚洲| 久久久久久久综合色一本| 懂色av一区二区三区免费看| 亚洲欧洲国产专区| 欧美色综合久久| 青青草成人在线观看| 国产亚洲午夜高清国产拍精品| 成人自拍视频在线观看| 一区二区三区国产精品| 日韩午夜电影在线观看| 国产一区二区伦理| 一区二区视频在线| 91精品国产91久久久久久一区二区 | 日本aⅴ亚洲精品中文乱码| 精品女同一区二区| aaa欧美色吧激情视频| 亚洲第一精品在线| 久久久精品免费观看| 日本韩国欧美三级| 久久99精品久久久久久久久久久久| 欧美高清在线精品一区| 欧美日韩一二区| 丁香婷婷综合网| 午夜久久久久久| 国产精品乱码一区二区三区软件| 在线免费观看日本一区| 精品在线免费视频| 亚洲人成电影网站色mp4| 日韩欧美亚洲一区二区| 91亚洲精品一区二区乱码| 日本中文字幕一区| 国产精品免费aⅴ片在线观看| 欧美日韩国产在线观看| 丁香六月久久综合狠狠色| 日本亚洲三级在线| 最近日韩中文字幕| 久久久夜色精品亚洲| 欧美乱妇15p| 91亚洲精品乱码久久久久久蜜桃| 激情都市一区二区| 五月天中文字幕一区二区| 中文字幕一区二区在线播放| 精品第一国产综合精品aⅴ| 欧美中文字幕一区二区三区| 成人午夜短视频| 黑人巨大精品欧美黑白配亚洲| 一区二区高清免费观看影视大全| 日本一区二区电影| 精品国产区一区| 日韩欧美亚洲国产另类| 欧美人牲a欧美精品| 日本久久一区二区三区| 成人黄色网址在线观看| 国产成人免费网站| 狠狠色综合日日| 久久激情五月婷婷| 视频一区国产视频| 亚洲福利一区二区| 亚洲永久免费av| 一区二区三区在线播放| 亚洲乱码国产乱码精品精可以看| 欧美激情在线一区二区三区| 国产欧美日韩精品一区| 欧美精品一区二区不卡| 精品国产欧美一区二区| 精品福利一区二区三区免费视频| 日韩欧美综合一区| 日韩亚洲欧美中文三级| 日韩三级免费观看| 欧美一个色资源| 日韩手机在线导航| 欧美精品一区二区三区在线播放 | 欧美日韩国产一区二区三区地区| 色狠狠一区二区三区香蕉| 色婷婷久久久综合中文字幕| 欧美亚洲禁片免费| 777午夜精品免费视频| 91麻豆精品国产91久久久资源速度| 91精品国产91久久久久久最新毛片 | 精品亚洲免费视频| 久久精品国产亚洲a| 激情另类小说区图片区视频区| 久久99精品视频| 成人三级伦理片| 99精品欧美一区二区蜜桃免费| 色呦呦国产精品| 7777精品伊人久久久大香线蕉超级流畅 | av午夜精品一区二区三区| 色婷婷精品大在线视频| 欧美日韩精品免费| 欧美成人福利视频| 国产女同互慰高潮91漫画| 亚洲三级视频在线观看| 午夜电影网一区| 国产乱人伦偷精品视频不卡| 91麻豆自制传媒国产之光| 欧美日韩视频在线一区二区| 欧美精品一级二级三级| 26uuu久久综合| 综合久久给合久久狠狠狠97色| 日韩综合小视频| 国产成人av一区二区三区在线 | 日韩欧美中文一区| 国产精品家庭影院| 日本欧美一区二区三区乱码| 国产·精品毛片| 欧美精品aⅴ在线视频| 国产精品麻豆网站| 三级欧美在线一区| 东方欧美亚洲色图在线| 6080yy午夜一二三区久久| 国产精品日日摸夜夜摸av| 日本成人在线不卡视频| 91色在线porny| 久久先锋影音av鲁色资源网| 亚洲综合免费观看高清完整版| 国产精品白丝jk白祙喷水网站 | 天堂蜜桃91精品| 成人va在线观看| 日韩三级av在线播放| 亚洲福利一二三区| 99国产精品久久久久久久久久| 日韩欧美国产一区二区三区| 亚洲日本成人在线观看| 国产精品一区免费视频| 欧美三区在线视频| 亚洲免费电影在线| 国产99久久久国产精品潘金| 5月丁香婷婷综合| 一区二区理论电影在线观看| 成人国产视频在线观看| 久久综合久久鬼色| 青草av.久久免费一区| 欧美日韩国产一区二区三区地区| 一区在线播放视频| 国产不卡在线视频| 精品国偷自产国产一区| 日本视频一区二区| 欧美日韩中文字幕一区二区| 一区二区在线观看免费视频播放| 99视频一区二区| 中文字幕二三区不卡| 国产99久久久精品| 国产日韩精品一区二区浪潮av| 麻豆国产精品777777在线| 8x福利精品第一导航| 日韩成人精品在线观看| 欧美写真视频网站| 亚洲第一精品在线| 欧美精品亚洲二区| 日韩高清不卡一区二区三区| 91.xcao|