Pod :: Usage帮助格式化

时间:2014-07-03 07:11:46

标签: perl options command-line-interface

我想为我的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.

有任何线索吗?

2 个答案:

答案 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,这是一个更简单的格式化程序。

Set a different formatter

Pod::Text也有几个格式选项,例如左边距,缩进级别,页面宽度,这可能会更符合您的喜好。