【发布时间】:2011-02-24 23:28:29
【问题描述】:
我正在尝试管理用户在执行命令时指定的大量参数。到目前为止,我一直在尝试将我的脚本设计限制为将参数作为可以使用 Getopt::Long 轻松管理的标志来管理,如下所示:
GetOptions ("a" => \$a, "b" => \$b);
通过这种方式,我可以检查是否指定了 a 或 b,然后执行相应的代码/函数。
但是,我现在有一个案例,用户可以指定两个参数变量,如下所示:
command -a black -b white
这很好,但我想不出一个好的方法来确定是先指定 -a 还是 -b。因此,在我执行完GetOptions ("a" => \$a, "b" => \$b); 之后,我不知道参数变量是分配给$ARGV[0] 还是$ARGV[1]。
在上面的示例中,我如何知道哪个变量与-a 相关联,哪个与-b 相关联?
【问题讨论】:
-
我以为
GetOptions删除了ARGV中的条目。 -
Nitpick:即使在示例中,您也不应该真正使用
$a和$b作为变量;这些是 Perl 自己的。
标签: perl command-line-arguments