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

📄 podparser.pm

📁 source of perl for linux application,
💻 PM
字号:
package Module::Build::PodParser;use strict;use vars qw($VERSION);$VERSION = '0.2808_01';$VERSION = eval $VERSION;use vars qw(@ISA);sub new {  # Perl is so fun.  my $package = shift;  my $self;  # Try using Pod::Parser first  if (eval{ require Pod::Parser; 1; }) {    @ISA = qw(Pod::Parser);    $self = $package->SUPER::new(@_);    $self->{have_pod_parser} = 1;  } else {    @ISA = ();    *parse_from_filehandle = \&_myparse_from_filehandle;    $self = bless {have_pod_parser => 0, @_}, $package;  }  unless ($self->{fh}) {    die "No 'file' or 'fh' parameter given" unless $self->{file};    $self->{fh} = IO::File->new($self->{file}) or die "Couldn't open $self->{file}: $!";  }  return $self;}sub _myparse_from_filehandle {  my ($self, $fh) = @_;    local $_;  while (<$fh>) {    next unless /^=(?!cut)/ .. /^=cut/;  # in POD    last if ($self->{abstract}) = /^  (?:  [a-z:]+  \s+ - \s+  )  (.*\S)  /ix;  }    my @author;  while (<$fh>) {    next unless /^=head1\s+AUTHORS?/ ... /^=/;    next if /^=/;    push @author, $_ if /\@/;  }  return unless @author;  s/^\s+|\s+$//g foreach @author;    $self->{author} = \@author;    return;}sub get_abstract {  my $self = shift;  return $self->{abstract} if defined $self->{abstract};    $self->parse_from_filehandle($self->{fh});  return $self->{abstract};}sub get_author {  my $self = shift;  return $self->{author} if defined $self->{author};    $self->parse_from_filehandle($self->{fh});  return $self->{author} || [];}################## Pod::Parser overrides ###########sub initialize {  my $self = shift;  $self->{_head} = '';  $self->SUPER::initialize();}sub command {  my ($self, $cmd, $text) = @_;  if ( $cmd eq 'head1' ) {    $text =~ s/^\s+//;    $text =~ s/\s+$//;    $self->{_head} = $text;  }}sub textblock {  my ($self, $text) = @_;  $text =~ s/^\s+//;  $text =~ s/\s+$//;  if ($self->{_head} eq 'NAME') {    my ($name, $abstract) = split( /\s+-\s+/, $text, 2 );    $self->{abstract} = $abstract;  } elsif ($self->{_head} =~ /^AUTHORS?$/) {    push @{$self->{author}}, $text if $text =~ /\@/;  }}sub verbatim {}sub interior_sequence {}1;

⌨️ 快捷键说明

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