Можно сделать и так, чтоб консольное перловое приложение выводило документацию о себе, если запущено с определёнными аргументами, например,
-?
, -h
или --help
вызывало бы вывод краткой информации, а -m
, --man
или --manual
— полной. Делается это так:#!/usr/bin/perl
=head1 SYNOPSIS
./script-name.pl I<[options]>
=head1 OPTIONS
... ещё документация
=cut
use Getopt::Long;
use Pod::Usage qw( pod2usage );
my $need_help;
my $need_manual;
GetOptions(
# обработка других аргументов
'help|?' => \$need_help,
'manual' => \$need_manual,
);
pod2usage(1)
if $need_help;
pod2usage('verbose' => 2)
if $need_manual;
Запускаем с аргументом
-?
— видим краткую справку, пробуем -m
— видим что попало: где-то видна документация, а где-то — исходный код. Если после выхода из просмотра этого кода внимательнее посмотреть на экран, можно заметить сообщениеYou need to install the perl-doc package to use this program.
Причина — отсутствие перлдока. В некоторых системах, например, во FreeBSD, perldoc сразу установлен, в других, таких как Debian — нет, и его надо ставить отдельно. Если поставить perldoc, то и скрипты начинают нормально выводить свою документацию:
$ perldoc ./script-name.pl
You need to install the perl-doc package to use this program.
$ sudo apt install perl-doc
...
$ ./script-name.pl --man
SYNOPSIS
./script-name.pl [options]
...
http://shoorick.ru/2018/01/26/perldoc-needed/
До сих пор пишут