我如何才能找到复制/粘贴(复制,克隆)在Perl代码?
-
13-09-2019 - |
题
我在网上搜索了一段时间了,我一直没能找到任何免费(或廉价)工具/实用工具/模块可以分析一组的Perl文件(模块或脚本)和标志复制或克隆或复制/粘贴代码。
我已经好多了,但我用复制和粘贴所有的地方的代码段。我想清理和修复我的旧代码重复,但工具一点点帮助,将不胜感激,所以我不会要经过我所有的旧代码用细齿梳。另外,这类罪行的手动识别是容易出错。
其他提示
你说的重复的代码是什么意思?只是字符精确匹配或语义匹配。
有多种工具例如 http://pmd.sourceforge.net/ 可以检测重复的代码由字符串匹配,这个工具是为Java但源匹配工作在纯文本。
如果你想语义匹配,如
sub A
{return 1;}
匹配
sub B
{
return 1;
}
然后你需要别的东西:(
我已经使用 CCFinder 过去以发现是重复的代码段。它的工作原理相当不错,但有一个有趣的..接口。它没有为Perl的原生支持,但它确实有它应该检测的副本和至少粘贴工作明文选项。有一个Windows和Ubuntu的解决方案 - 免费软件,不是开源的不幸。
语义设计使得被叫克隆博士产物似乎是能够分析大量语言的类型的代码克隆部分。但现在看来,他们的免费试用版只适用于Java和COBOL。
我刚计算猿猴。它有一个15天的免费评估期,收费是一百块钱的单用户许可。它不正式支持Perl的,但它确实把它们作为纯文本和反正对其进行分析。这是一个超快速的工具!而超级好用。从该工具生成的报告是简单和容易理解。我完全赞成这个工具。现在我只需要跟我的老板,让他购买许可证。
下面是另一个网页列出了一些克隆检测工具:
不隶属于 StackOverflow