どのように私は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日間の無料試用期間があり、シングルユーザーライセンスのために100ドルの費用がかかります。これは、正式にPerlをサポートしていませんが、それはプレーンテキストとしてそれらを扱い、とにかくそれらを分析ありません。これは、超高速なユーティリティです!そして、超簡単に使用します。このツールから生成されたレポートは、シンプルで解釈するのは簡単でした。私は完全にこのツールを承認します。今、私はちょうど私の上司に話をし、彼はライセンスを購入するために取得する必要があります。
ここではいくつかのクローン検出ツールをリスト別のWebページがあります: