2011-01-20 26 views
0

スクリプトでGetopt::Longを使用する方法については、perlのドキュメントにあるチュートリアルで作業していました。そこで、Pod::Usageを使用してドキュメントを追加する方法を示します。サブルーチンなどをすべて入力する必要はありません。とにかく、例の中にはこれがあります。perlスクリプトの最後に複数のPODを追加するにはどうすればよいですか?

GetOptions('help|?' => \$help, 'b|backup' => \&backup, d|discover => \&discover, man => \$man) or pod2usage(2); 
pod2usage(1) if $help; 
pod2usage(-exitstatus => 0, -verbose => 2) if $man; 

私は自分の議論をいくつか追加しました。

ドキュメントの最初のセクションを参照する方法を説明します。しかし、私はpod2usage(2)で述べられているように、2番目のセクションをどのように参照するのですか?

セクション1の末尾にある=cutの後に新しいセクションを追加すると、それを表示させようとすると、コマンドプロンプトが表示され、セクションが表示されずに表示されます。私は何か間違っているのですか?

答えて

3

「複数のPOD」は必要ありません。例えば、と呼ばれる

pod2usagepod2usage(1)、ここで1は、終了状態を表しており、冗長性レベルは1として暗示されているので、それはSYNOPSISを印刷し、OPTIONS題し任意のセクションます、ARGUMENTSまたはOPTIONS AND ARGUMENTS

pod2usage(-exitval => 0, -verbose => 2)と呼ばれると、テキストページャ(perldoc yourscriptname.plと同じ)内にPODの全体が印刷され、0で終了します。 (-exitvalであり、-exitstatusではないことに注意してください)。

Pod::Usageドキュメントhereに詳しく記載されており、説明したとおりに動作します。

-sectionsのパラメータはpod2usageに記載されており、表示する内容を選択して選択するために-verbose => 1と組み合わせて使用​​すると便利です。

+0

私はPod :: Usageの文書をもっとゆっくりと見て、話している部分を見ました。私が働くことができない部分は、GetOptions .....またはpod2usage(2)です。プロンプトにダンプするだけで、メニューを表示する必要はありません。ちょうど私がpod2usage(2)と同じことをするために私のコマンドフラグの1つを編集して見て、それは完璧に動作します。 – ianc1215

+0

Nevermind解決策を見つけました。ありがとうございました。 – ianc1215

+1

あなたの例では、オプションのどれも必須オプションではないので、 'GetOptions'はtrue(well、' 1')を返すので、 'またはpod2usage(2);'節は決して実行されません。 'pod2usage'とは何の関係もありません。 –

関連する問題