✏️ 编辑:PodParser.pm
路径:
/usr/share/perl5/vendor_perl/Module/Build/PodParser.pm
大小:1.27 KB · 修改:2022-02-16 11:46:22 · 权限:0644 · 只读(保存会失败)
← 返回目录
👁 查看
⬇ 下载
package Module::Build::PodParser; use strict; use warnings; our $VERSION = '0.4231'; $VERSION = eval $VERSION; sub new { # Perl is so fun. my $package = shift; my $self; $self = bless {have_pod_parser => 0, @_}, $package; unless ($self->{fh}) { die "No 'file' or 'fh' parameter given" unless $self->{file}; open($self->{fh}, '<', $self->{file}) or die "Couldn't open $self->{file}: $!"; } return $self; } sub parse_from_filehandle { my ($self, $fh) = @_; local $_; while (<$fh>) { next unless /^=(?!cut)/ .. /^=cut/; # in POD # Accept Name - abstract or C<Name> - abstract last if ($self->{abstract}) = /^ (?: [a-z_0-9:]+ | [BCIF] < [a-z_0-9:]+ > ) \s+ - \s+ (.*\S) /ix; } my @author; while (<$fh>) { next unless /^=head1\s+AUTHORS?/i ... /^=/; 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} || []; }
💾 保存
取消
保存为 UTF-8,换行统一为 LF