pod2usage perl (-verbose => 2) показывает исходный код вместо отформатированной документации

Согласно документации Pod:: Usage, с pod2usage(-verbose => 2) msgstr "напечатана вся справочная страница". Однако в некоторых случаях исходный код perl для скрипта отображается вместо правильно отформатированной man-страницы.

Вот пример:

use Pod::Usage qw(pod2usage);
pod2usage(-verbose => 2);

__END__

=head1 NAME

Minimal example

=head1 SYNOPSIS

This is the synopsys section.

=cut

Запуск скрипта:

$ perl test.perl            
You need to install the perl-doc package to use this program.
use Pod::Usage qw(pod2usage);
pod2usage(-verbose => 2);

__END__

=head1 NAME

Minimal example

=head1 SYNOPSIS

This is the synopsys section.

=cut

1 ответ

Решение

Проблема в том, что pod2usage использует программу командной строки perldoc, Если эта программа не установлена, то форматирование не выполняется, и вы получите полный исходный код в выводе.

Обратите внимание, что в вопросе текст "You need to install the perl-doc package to use this program.В выводе появляется ", чтобы дать вам подсказку о том, что происходит (но когда текст справки длинный и передан на пейджер, эта строка не всегда видна).

Решение: установите perldoc (например, apt install perl-doc на Ubuntu). После этого:

$ perl test.perl 
NAME
    Minimal example

SYNOPSIS
    This is the synopsys section.
Другие вопросы по тегам