我正在寻找可能包含正则表达式和注释的perl代码行 我需要捕捉所有内容直到评论。所以我想要所有角色直到#但我对捕获#感兴趣# 例如,如果该行是:
if ($line=/\#/) { #captures lines with '#'
我想抓拍:
if ($line=/\#/) {
答案 0 :(得分:3)
尝试一下:
use PPI;
my $ppi = PPI::Document->new('source.pl');
my $source = '';
for my $token ( @{ $ppi->find("PPI::Token") } ) {
last if $token->isa("PPI::Token::Comment");
$source .= $token;
}
print $source;
这应该可以处理除了here-docs之外的所有内容。如果你需要处理那些,首先复制PPI :: Document :: serialize并修改它以在第一条评论上停止。
答案 1 :(得分:0)