独自のカスタム コマンド用に POD を作成し、pod2usage() 関数を使用してその構文を表示したいと考えています。
誰でも簡単な例を教えてもらえますか?
よろしく、 アナンダン
Getopt::LongとPod::Usageを併用してこれを行います。(PerlMonks サイトのチュートリアルを読んだ後、この習慣を身につけたので、そのリンクもここにあります。) 次の例のようになります。
use Getopt::Long;
use Pod::Usage;
my( $opt_help, $opt_man, $opt_full, $opt_admins, $opt_choose, $opt_createdb, );
GetOptions(
'help!' => \$opt_help,
'man!' => \$opt_man,
'full!' => \$opt_full,
'admin|admins!' => \$opt_admins,
'choose|select|c=s' => \$opt_choose,
'createdb!' => \$opt_createdb,
)
or pod2usage( "Try '$0 --help' for more information." );
pod2usage( -verbose => 1 ) if $opt_help;
pod2usage( -verbose => 2 ) if $opt_man;
$opt_man
この例では、 and以外のオプション$opt_help
は関係ありません。ここにあるランダムなスクリプトの先頭をコピーしました。
その後、POD を作成するだけです。これは、 POD自体の基本を説明する適切なリンクです。
編集:コメントのOPの質問に応えてNAME
、適切なオプションを渡したときにセクションだけを印刷する方法を次に示します。まず、 のオプションのハッシュに別のオプションを追加しますGetOptions
。ここを使いましょう'name' => \$opt_name
。次に、これを追加します。
pod2usage(-verbose => 99, -sections => "NAME") if $opt_name;
Verbose レベル 99 は魔法です。1 つまたは複数のセクションを選択して出力するだけです。Pod::Usage
詳細については、以下のドキュメントを参照し-sections
てください。セクションが 1 つだけ必要な場合でも-sections
、(名前) は複数形であることに注意してください。