我已经在互联网上搜索了一段时间,但我找不到任何可以分析一组Perl文件(模块或脚本)并标记重复或克隆的免费(或便宜)工具/实用程序/模块或复制/粘贴代码。
我现在好多了,但我过去常常复制并粘贴代码段。我想清理它并修复我的旧代码重复,但是一点点的工具帮助将会受到赞赏,所以我不需要用细齿梳子来完成我所有的旧代码。此外,手动识别此类攻击很容易出错。
答案 0 :(得分:5)
答案 1 :(得分:4)
重复代码是什么意思?只是字符完全匹配或语义匹配。
有一些工具如http://pmd.sourceforge.net/可以通过字符串匹配检测重复代码,此工具适用于java,但源匹配适用于纯文本。
如果你想要语义匹配,比如
sub A
{return 1;}
匹配
sub B
{
return 1;
}
然后你还需要别的东西:(
答案 2 :(得分:2)
我过去曾使用CCFinder来查找重复的代码段。它工作得很好,但有一个有趣的界面。它没有对perl的本机支持,但它确实有一个纯文本选项,至少可以用于检测复制和粘贴。有一个Windows和Ubuntu解决方案 - 免费软件,不幸的是不是开源的。
答案 3 :(得分:0)
Semantic Designs创建了一个名为Clone Dr.的产品,它似乎能够为克隆的代码段分析大量语言类型。但似乎他们的免费评估版仅适用于Java和Cobol。
答案 4 :(得分:0)
我刚刚评估了Simian。它有一个15天的免费评估期,单个用户许可证的成本为100美元。它没有正式支持Perl,但它确实将它们视为纯文本并进行分析。这是一个超快的实用程序!而且超级好用。使用此工具生成的报告简单易懂。我完全赞同这个工具。现在我只需要和我的老板谈谈并让他购买许可证。
答案 5 :(得分:0)
这是另一个列出一些克隆检测工具的网页: