我想为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
但是,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.
不是这个:
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.
有线索吗?
2条答案
按热度按时间mf98qq941#
当你使用
=item
时,你应该在它前面加上一个=over x
,其中x
是你想移动的距离。当你完成你的项目后,你需要使用=back
。如果=over x
足够远,该项目的段落将与=item
打印在同一行。我试了一下,发现=over 20
看起来很不错:这将打印出:
POD中的
v, --version
内容并不能让它以漂亮的三列格式打印。您可以做的是在-h
和--help
之间给予更多的空间,就像我上面所做的那样,以提高可读性。记住,重要的是POD中的数据,而不是绝对的格式。使用格式使其易于阅读,但不要对细节太在意。
我强烈建议您使用旧的标准手册页布局(
Pod2Usage
假定)。hgtggwj02#
您可以尝试以下两种方法:
-noperldoc选项使其切换到Pod::Text,这是一个更简单的格式化程序。
或
设置其他格式化程序
Pod::Text
也有几个格式选项,如左边距,缩进级别,页宽,这可能会使它更符合您的喜好。