しばらくインターネットを検索しましたが、一連の Perl ファイル (モジュールまたはスクリプト) を分析し、重複または複製またはコピー/貼り付けたコード。
今は良くなりましたが、以前はコードのセクションをあちこちにコピー アンド ペーストしていました。それをクリーンアップして古いコードの重複を修正したいのですが、ツールの助けが少しあればありがたいので、細かい櫛で古いコードをすべて調べる必要はありません。さらに、この種の違反を手動で認識すると、エラーが発生しやすくなります。
しばらくインターネットを検索しましたが、一連の Perl ファイル (モジュールまたはスクリプト) を分析し、重複または複製またはコピー/貼り付けたコード。
今は良くなりましたが、以前はコードのセクションをあちこちにコピー アンド ペーストしていました。それをクリーンアップして古いコードの重複を修正したいのですが、ツールの助けが少しあればありがたいので、細かい櫛で古いコードをすべて調べる必要はありません。さらに、この種の違反を手動で認識すると、エラーが発生しやすくなります。
重複コードとはどういう意味ですか?文字の完全一致またはセマンティック一致のみ。
http://pmd.sourceforge.net/のように、文字列の一致によって重複コードを検出できるツールがいくつかあります。このツールはJava用ですが、ソースの一致はプレーンテキストで機能します。
セマンティックマッチングが必要な場合
sub A
{return 1;}
合わせる
sub B
{
return 1;
}
次に、何か他のものが必要になります:(
I have used CCFinder in the past to find sections of code which are duplicates. It works quite well but has an.. interesting interface. It doesn't have native support for perl, but it does have a plaintext option which should work for detection of copy and pasting at least. There is a Windows and Ubuntu solution - Freeware, not open source unfortunately.
Semantic Designs は、Clone Dr.と呼ばれる製品を作成しています。この製品は、コードのクローン セクションの多数の言語タイプを分析できるようです。しかし、無料の評価版は Java と Cobol でしか動作しないようです。
Simianを評価しました。15 日間の無料評価期間があり、単一のユーザー ライセンスに 100 ドルかかります。Perl を正式にサポートしていませんが、プレーン テキストとして扱い、とにかく分析します。これは超高速ユーティリティです!そして超使いやすい。このツールから生成されたレポートは、シンプルで解釈しやすいものでした。私はこのツールを完全に承認します。あとは、上司と話して、ライセンスを購入してもらうだけです。
いくつかのクローン検出ツールをリストした別の Web ページを次に示します。