Как создать POD и использовать pod2usage в Perl? - PullRequest
5 голосов
/ 05 августа 2009

Я хочу создать POD для собственной пользовательской команды и отобразить синтаксис для нее с помощью функции pod2usage ().

Кто-нибудь может дать мне простой пример для этого?

С уважением, Анандан

Ответы [ 2 ]

15 голосов
/ 05 августа 2009

Я склонен делать это, используя 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 и $opt_help, не имеют значения для вас в этом примере. Я просто скопировал верхний случайный скрипт, который у меня был здесь.

После этого вам просто нужно написать POD. Вот хорошая ссылка , описывающая основы самого POD.

Редактировать : В ответ на вопрос ОП в комментариях, вот как вы можете напечатать только раздел NAME, если передан соответствующий параметр. Сначала добавьте еще одну опцию к хэшу опций в GetOptions. Давайте использовать 'name' => \$opt_name здесь. Затем добавьте это:

pod2usage(-verbose => 99, -sections => "NAME") if $opt_name;

Детальный уровень 99 - это магия: он позволяет вам выбрать один или несколько разделов только для печати. См. Документацию Pod::Usage в разделе -sections для получения более подробной информации. Обратите внимание, что -sections (название) - это множественное число , даже если вам нужен только один раздел .

4 голосов
/ 05 августа 2009

В справочной странице perlpod есть много хороших примеров. Pod2usage объясняется здесь .

...