According to the documentation of Pod::Usage, with pod2usage(-verbose => 2)
"the entire manpage is printed". However, in some cases, the perl source code for the script is displayed instead of the properly formatted manpage.
Here's an example:
use Pod::Usage qw(pod2usage);
pod2usage(-verbose => 2);
__END__
=head1 NAME
Minimal example
=head1 SYNOPSIS
This is the synopsys section.
=cut
Running the script:
$ 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
The issue is that
pod2usage
uses the command-line programperldoc
. If this program is not installed, then no formatting is done and you get the full source code in the output.Note that in the question, the text "
You need to install the perl-doc package to use this program.
" appears in the output to give you a hint about what's going on (but when the help text is long and piped to a pager, this line is not always visible).Solution: install perldoc (e.g.
apt install perl-doc
on Ubuntu). After this: