2014-02-07 3 views
-1

Я использую Pod :: Использование и Getopts :: Давно вместе и отлично работает для печати, только если вы предоставляете -help или если аргументы не распознаются. Однако, если сценарий требует некоторых аргументов и аргументов не предоставляется, он ничего не печатает и просто возвращается в приглашение. Как я могу заставить его использовать печать, если аргументы не указаны? Ниже приведен мой код:Pod :: Использование и Getopts :: Long

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

Вы можете напрямую вызвать pod2usage. Просто проверьте настройки, чтобы узнать, были ли предоставлены:

pod2usage() unless $opt_name; 
0

Редактировать: Мэтью избил меня.

Я никогда не использовал Pod :: Использование и раньше, но я хотел бы предположить:

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); 

бы, что не работает?

Смежные вопросы