如何使用Getopt::Long
识别未知选项?
我尝试了<>
,但它没有像预期的那样工作。考虑:
use Modern::Perl;
use Getopt::Long;
my $help='';
GetOptions ('help' => \$help,'<>' => \&usage);
usage() if $help;
usage() if @ARGV != 1;
my $fn=pop;
say "FileName: $fn";
sub usage {
say "Unknown option: @_" if ( @_ );
say "Usage: $0 <filename>";
say " $0 --help";
say "";
exit
}
只有当存在无法识别的选项时,我才想打印Unknown option
(在本例中,是--help
以外的任何选项)。但是,现在它认为文件名是一个无法识别的选项。
2条答案
按热度按时间oknwwptz1#
如果
GetOptions
失败,则调用usage
函数。Getopt::Long将为您打印Unknown option
(到STDERR):dgenwo3n2#
开始使用pod文档,因为核心模块
Getopt::Long
和Pod::Usage
可以很好地协同工作。可以获得你想要的行为,而无需创建helper方法来完成它:下面是一个示例脚本:
输出: