Perl GetOptions或死不按预期工作

时间:2016-02-18 18:39:18

标签: perl

我正在编写一个简单的代码,它在命令行中接受一个参数并进行一些处理。我希望脚本能够#34; die"如果没有选项通过。

这是我的剧本,但似乎并没有#34; die"。有什么意见吗?

my $NETLIST;
GetOptions (
    "netlist=s" => \$NETLIST
) or die ("ERROR: Netlist path must be specified.");

1 个答案:

答案 0 :(得分:4)

默认情况下,Getopt::Long将其选项视为......可选。如果您未在命令行上提供GetOptionsnetlist会很高兴。您需要做一些额外的工作来检查是否提供了该选项。这是一种方式。

use warnings;
use strict;
use Getopt::Long;

my $NETLIST;
GetOptions (
    "netlist=s" => \$NETLIST
) or die ("ERROR: unsupported option.");

die("ERROR: Netlist path must be specified.") unless defined $NETLIST;