Pod :: Usage和Getopts :: Long

时间:2014-02-07 10:18:45

标签: perl

我正在使用Pod :: Usage和Getopts :: Long,只有在提供-help或者无法识别参数时才能正常使用打印。但是,如果脚本需要一些参数并且没有提供参数,则它不会打印任何内容而只返回提示符。如果没有给出参数,我怎样才能打印它?以下是我的代码:

my ($opt_name); my $opt_help = 0;
GetOptions ('n=s' =>    \$opt_name,
            'help|?' => \$opt_help) or pod2usage(2); pod2usage(1) if $opt_help;    
__END__

=head1 SYNOPSIS

script.pl [-o=<name>]

 Options:
   -n              Name
   -help           Prints usage

=cut

2 个答案:

答案 0 :(得分:2)

您可以直接拨打pod2usage。只需检查设置,看看是否提供了任何设置:

pod2usage() unless $opt_name;

答案 1 :(得分:0)

编辑:马修打败了我。

我之前从未使用过Pod :: Usage,但我认为:

my $opt_REQUIRED_name = ""; my $opt_help = 0;
GetOptions ('n=s' =>    \$opt_REQUIRED_name,
            'help|?' => \$opt_help) or pod2usage(2); pod2usage(1) if $opt_help;
                                          pod2usage(1) if (! $opt_REQUIRED_name);

这不起作用吗?