File/Spec.pm1つのファイルに含まれた再利用可能なライブラリのコードのことです。メインのパッケージの名前で参照されます。代わりに、File::Specで参照する人もいます。namespace.Perlのpackage文で宣言された名前空間のことです。elements.メタデータファイルを読むコードのことです。データ構造にするか、メタデータのデータ構造を解釈します。disk.メタデータ構造を作るコードのことです。シリアライズするか、または、ディスクにそれを書きます。書かれている用に解釈されます。そのそれぞれが、ここに書かれていあるようなデータ型に関連します。ブール、文字列、リスト、マップ。データ要素の値で制約を定義します。真か偽の値を提供するのに使われます。表現されなければなりません。reference.文字列はゼロ文字幅でない連続するユニコードキャラクタのデータです。リファレンスでない、普通のPerlのスカラのようなデータです。types.リストは、0以上のデータ要素の順番のある集合です。リストのエレメントは複数の型になってもよいです。示すデータ構想を使って、リストの要素を表現しなければいけません。1.リストを期待するコンシューマは文字列を長さ1のリストに等しいと考えなければいけません。types.マップは0以上の順番のないデータ要素("値")の集合です。関連する文字列の要素("キー")によってインデックスされます。マップの値の要素は複数の型になってもよいです。ライセンス文字列は文字列のサブタイプで、値は制限されています。有効な値は、"license"のフィールドの説明に詳しく書かれています。]URLは文字列のサブタイプで、ユニフォームリソースロケータかアイデンティファイアです。セクションにあります。section.バージョンの範囲型は文字列のサブタイプです。存在するか、インストールされるバージョンの範囲を表します。"バージョンの範囲"セクションで詳しく明記されています。Map.メタデータの構造はマップ型のデータ要素です。マップの有効なキーについて説明します。パターンにマッチしなければいけません。keys.メタデータのコンシューマはいずれかの、または、すべてのカスタムキーを無視してもよいです。ここで説明されていないすべての他のキー不正であり、コンシューマによって無視されるべきです。プロデューサは不正なキーを生成したり、出力してはいけません。respectively.それぞれのキーごとに、説明の前に例があります。キーが必須かオプショナルかどうか、一致するデータ要素のデータ型で始まっています。これらのアイテムは、それぞれ括弧、ブラケット、ブレス内にあります。well.データ型がマップかマップのサブタイプであれば、有効なサブキーが説明されます。higher.フィールドには、廃止されたものもあります。バージョン2以上のメタデータ構造から、生成されても、読まれてもいけません。distribution.ディストリビューションの目的を簡単に説明するものです。is:このリストは、ディストリビューションに関係する人(たち)の連絡先を示します。distribution.このフィールドは、一般的なコンタクトリストを提供します。どのような目的のためにも、連絡可能なナアドレスです。author.ディストリビューションのオリジナルの作者が、普通はこのフィールドにのる連絡先です。オリジナルの作者の代わりに、リストされてもよいです。必要条件を決定するために、実行されなければならないかどうかを示します。真の値にするべきです。偽にセットされるべきです。安全に実行されるかどうかを、明示的に示しません。このフィールドは必要条件がメタデータに与えられているもので完全かどうかのみを決定します。hand.このフィールドはこのメタデータを作るのに使われたツールを示します。このフィールド用のセマンティクスは定義されていません。手で作ったのなら作者の名前を使います。1つ以上のライセンスです。ドキュメントは複数のライセンスの説明を明確にすべきです。field.これら以外の文字列はライセンスのフィールドとして不正です。consumer.このフィールドはCPANメタデータ仕様のバージョンを示しています。メターデータを解釈するのに使われるべきです。中止しなければいけません。required.以下のキーは有効ですが、versionのみが必須です。整数のバージョンです。document.これは、与えられたバージョンに一致するメタデータ仕様のドキュメントのURLです。これは完全に人間の消費のためのものであり、ドキュメントの解釈に影響を与えるべきではありません。http://search.cpan.org/dist/libwww-perl/.このフィールドはディストリビューションの名前です。作られることが多いです。関係なくてもよいです。"stable."このフィールドはディストリビューションのリリース状態を提供します。"stable"にしてはいけません。"final"リリースを示します。追加のテストが必要な状態です。リリースを超えてインストールすべきではありません。user.これは、活発に開発中の"アルファ"リリースを示します。足りない機能や深刻なバグがあってもよいです。インストールすべきではありません。このフィールドを使ってもよいです。目的や、意図する使い方の説明です。whitespace.ディストリビューションを説明するキーワードのリストです。空白を含んではいけません。名前空間を記述します。conventions.相対パスのファイルのリストです。されなければいけません。conventions.相対パスのディレクトリのリストです。されなければいけません。names.パッケージ名のリスト。itself.名前空間のリストで、その名前空間以降はどこでも無視されなければいけません。名前空間それ自身は無視されるべきではありません。無視されますが、My::Module::Sampleは無視されません。include:このマップは、インクリメンタルな必要条件に関するオプションの機能です。文字列であり、それぞれの値は機能に関する追加の情報のマップです。description機能を記述する文字列です。enabled.このエントリーは必須で、"prereqs"キーと同じ構造です。パッケージの要求のリストです。configureフェーズの必要条件を含んではいけません。必要条件としてオプションの機能を含んではいけません。prereqaキーで与えられている必要条件にマージすべきです。必要条件のマージについての詳細は、"必要条件のマージと解決"を見てください。optional_featureの使用は推奨されません。