Я склонен делать это, используя 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
(название) - это множественное число , даже если вам нужен только один раздел .