如果这是重复的,我深表歉意;我可能不知道要搜索的正确术语。
我的任务是分析作为较大应用程序片段的 Perl 模块文件 (.pm)。是否有工具、应用程序或脚本可以简单地检查代码并提取所有变量名、模块名和函数调用?更好的是可以识别它是在这个文件中声明的还是外部的。
这样的工具存在吗?我只得到一个文件,所以这不是我可以执行的——我猜只是一些基本的静态分析。
最佳答案
查看新的,但值得推荐的 Class::Sniff
.
从文档:
use Class::Sniff;
my $sniff = Class::Sniff->new({class => 'Some::class'});
my $num_methods = $sniff->methods;
my $num_classes = $sniff->classes;
my @methods = $sniff->methods;
my @classes = $sniff->classes;
{
my $graph = $sniff->graph; # Graph::Easy
my $graphviz = $graph->as_graphviz();
open my $DOT, '|dot -Tpng -o graph.png' or die("Cannot open pipe to dot: $!");
print $DOT $graphviz;
}
print $sniff->to_string;
my @unreachable = $sniff->unreachable;
foreach my $method (@unreachable) {
print "$method\n";
}
这将使您大部分时间到达那里。一些
variables
,根据范围,可能不可用。
关于perl - 是否有从 Perl 模块文件中提取所有变量、模块和函数名称的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1343630/