私の場合、ビジネスロジックは含まれていません。1それは本当にあなたがしたいことではありません。実際に必要なものを事前に要求します。perlコアから来たのか別のCPANディストリビューションから来たのかに関係なく、それが必要なものです。特定のモジュールがCPANからコアに、またはその逆に移動した場合を見てきました。モジュールを直接要求することにより、依存している誰かが配布方法を変更したという理由だけで、依存する配布の新しいリリースを出荷する必要がありません。特定のモジュールがスタンドアロンモジュールとして価値があると判断されたときに、元のディストリビューションから分離されている場合もありました。モジュールに依存するということは、単純な依存関係のために他の多くのモジュールをドラッグする必要がなくなることを意味します。それらのほとんどには本当のロジックはなく、さらなる依存関係のリストにすぎません。2Perl依存関係システムは、パッケージ名、複数レベルで完全に機能します。CPANディストリビューションがアップロードされると、PAUSEによって各パッケージにインデックスが付けられます。PAUSEは、アップローダーがそのパッケージに対する権限を持っているかどうか、および現在インデックスが付けられているパッケージより新しいバージョンを持っているかどうかもチェックします。これらのチェックは、ディストリビューション全体を気にしません(ただし、インデクサーはそのレベルで他のチェックを行います)。次に、CPANクライアントが依存関係を検出した場合、または何かをインストールするように指示すると、そのパッケージ名のインデックスをチェックし、インストールするディストリビューションリリースを通知します。パッケージがある場合は、そのパッケージで宣言されています。ディストリビューションがインストールされると、その「バージョン」は追跡されなくなります。配布レベルは、これらの依存関係を満たすために最終的にダウンロードおよびインストールされるものを除いて、ほとんど完全に無意味です。モジュールはディストリビューション間を移動し、バージョンの増分を維持し、パッケージインデックスは常に、どのディストリビューションが必要なバージョンを取得するかを通知するため、これは重要です。これは永遠に存在する特殊なケースです。ランタイム要件を宣言します。これはインデックス付きモジュールではなく、CPANメタデータのすべてのCPANクライアントおよびその他のコンシューマは、これを無視するか、インストール可能なものではなく最小のPerlバージョンとして扱う特別なケースです。一般にディストリビューションで機能するようにこれを拡張する方法はありません。試してみるのは悪い考えです。レガシーバージョンです)が、このファイルはオーサリングツールによって自動的に生成されます。含むオーサリングツールで特定のキーを手動で追加することもできます(この場合、仕様を読むことが重要です)。さまざまなオーサリングツールの依存関係を指定する方法については、neilbのブログ投稿を参照してください。作成ツールは、これらを生成されたMETAファイルに変換します。cpanfilesを使用して一般的な依存関係を指定する方法についても説明します。