我想为我的Perl脚本正确格式化我的帮助消息,如果可能的话,使用Pod::Usage
等标准模块。不幸的是我真的不喜欢pod2usage的输出格式。例如,使用grep
,我得到以下帮助结构:
$ grep --help
Usage: grep [OPTION]... PATTERN [FILE]...
Search for PATTERN in each FILE or standard input.
PATTERN is, by default, a basic regular expression (BRE).
Example: grep -i 'hello world' menu.h main.c
Regexp selection and interpretation:
-E, --extended-regexp PATTERN is an extended regular expression (ERE)
-F, --fixed-strings PATTERN is a set of newline-separated fixed strings
-G, --basic-regexp PATTERN is a basic regular expression (BRE)
-P, --perl-regexp PATTERN is a Perl regular expression
但这与[{1}}非常不同,我收到了不受欢迎的Pod::Usage
和\n
:
\t
我想以传统方式修改我的帮助格式,即不使用$ ./sample.pl --help
Usage:
sample [options] [file ...]
This program will read the given input file(s) and do something useful
with the contents thereof.
Options:
--help
Print a brief help message and exits.
--man
Prints the manual page and exits.
且不使用\n
。事实上,我正在寻找允许我写这个的解决方案:
\t
得到这个:
__END__
=head1 SYNOPSIS
sample [options] [file ...]
B<This program> will read the given input file(s) and do something
useful with the contents thereof.
=head1 OPTIONS
=item B<-h,--help>
Print a brief help message and exits.
=item B<-v,--version>
Prints the version and exits.
=cut
不是这个:
Usage: sample [options] [file ...]
This program will read the given input file(s) and do something useful
with the contents thereof.
Options:
-h, --help Print a brief help message and exits.
-v, --version Prints the version and exits.
有任何线索吗?
答案 0 :(得分:2)
当您使用=item
时,您应在其前面添加=over x
,其中x
是您想要移动的距离。完成商品后,您需要使用=back
。如果=over x
足够远,则该项目的段落将打印在与=item
相同的行上。我玩了一遍,发现=over 20
看起来很不错:
use strict;
use warnings;
use Pod::Usage;
pod2usage( -verbose => 1);
=pod
=head1 SYNOPSIS
sample [options] [file ...]
B<This program> will read the given input file(s) and do something
useful with the contents thereof.
=head1 OPTIONS
=over 20
=item B<-h>, B<--help>
Print a brief help message and exits.
=item B<-v>, B<--version>
Prints the version and exits.
=back
=cut
打印出来:
Usage:
sample [options] [file ...]
This program will read the given input file(s) and do something useful
with the contents thereof.
Options:
-h, --help Print a brief help message and exits.
-v, --version Prints the version and exits.
你可以用POD中的v, --version
内容做很多事情来让它以漂亮的三列格式打印出来。您可以做的是在-h
和--help
之间留出更多空间,就像我上面所做的那样,以提高可读性。
请记住,重要的是POD中的数据,而不是绝对格式。使用格式化使其易于阅读,但不要过多地泄露细节。
我强烈建议您使用旧的标准Man页面布局(Pod2Usage
假设)。
答案 1 :(得分:0)
你可以尝试两件事:
-noperldoc option使其切换到Pod :: Text,这是一个更简单的格式化程序。
或
Pod::Text
也有几个格式选项,例如左边距,缩进级别,页面宽度,这可能会更符合您的喜好。