我正在重构一个相当大的代码体系,在思考如何继续这个时,我遇到了一些深奥的问题.这个代码在很大程度上需要的是缩短sub.
因此,将某种统计信息收集器指向目录是非常有利的,它将遍历所有的.pm,.cgi和.pl文件,找到所有的子站点(如果只获取指定的子站点,我会很好)并给我一张他们所有人的表格,以及他们的行数.
我给了PPI一个粗略的外观,但找不到任何直接相关的东西,有些工具可能是合适的,但使用起来相当复杂.
是否有更简单的模块可以做这样的事情?
如果做不到,你会怎么做?
编辑:
玩了一下PPI并创建了一个脚本来收集代码库的相关统计信息:http://gist.github.com/514512
Ped*_*lva 10
my $document = PPI::Document->new($file);
# Strip out comments and documentation
$document->prune('PPI::Token::Pod');
$document->prune('PPI::Token::Comment');
# Find all the named subroutines
my $sub_nodes = $document->find(
sub { $_[1]->isa('PPI::Statement::Sub') and $_[1]->name } );
print map { sprintf "%s %s\n", $_->name, scalar split /\n/, $_->content } @$sub_nodes;
Run Code Online (Sandbox Code Playgroud)