PODは、Perlに組み込まれた文書化フォーマットであり、大規模プロジェクトのサポートのために言語の拡張と共に歴史的に登場しました。その基本的な違いは、文書が常にソースコードに直接保存されるため、実装と説明の間の関係が失われないことです(現在のところ、Perlの複雑なモジュールの開発からは分離されていません)。
問題:多くのプログラマーが自動文書生成システムを知らないか、無視してしまうことが多いですが、Perlエコシステム(CPAN)はすべてのモジュールにこれを明示的に要求しています。
解決策 — 各ファイル、クラス、関数にPODを使用します。自動化のために、perldoc、pod2man、Pod::Coverageなどのツールがあります。明確なルール:モジュールにPODがない場合、そのモジュールは企業環境では受け入れられないか、CPANには載りません。
コードの例:
=head1 NAME My::Module - PODの使用例 =head1 SYNOPSIS use My::Module; ... =head1 DESCRIPTION この関数は... =cut
主な特徴:
PODはサブルーチンの内部に存在することができますか、それともファイルの先頭のみに制限されますか?
答え:はい、POD仕様は鍵の構文の後に挿入を許可します:関数やメソッドの宣言の後、ブロック内でも。
PODブロック内にコードを書くと何が起こりますか?
答え:=pod(または別のヘッダー)と=cutの間のすべてはインタープリタによって無視されます。その中のコードは実行されません!これはよくある間違いです。
PODでプライベート関数を文書化するにはどうすればよいですか?
答え:INTERNALSまたはPRIVATE FUNCTIONSセクションを追加するのが一般的ですが、そのような文書をSYNOPSISに含めないこともあります。特にライブラリが公開されている場合は、文書を完全に隠すことはお勧めしません。
モジュールは文書なしで提供されます。新しい開発者はソースコードを読み、関数の魔法のパラメーターを理解しなければなりません。
メリット:
デメリット:
すべてのコードにPODが付属しており、使用例がSYNOPSISセクションに表示され、各関数が説明され、制限が指定されています。
メリット:
デメリット: