是否可以将参数传递给通过getopt :: long调用的子例程? 例如,当用户在命令行上指定 script.pl -pandora参数时,我让此代码调用&Salt
GetOptions ( "domain=s" => \$domain,
"pandora=s" => \&Salt,
"reverse=s" => \$reverse,
"help" => \&Usage)
or die(&Usage);
我该如何将论点传递给Salt? 尝试了几件事:
GetOptions ( "domain=s" => \$domain,
"pandora=s" => \&Salt($pandora),
"reverse=s" => \$reverse,
"help" => \&Usage)
or die(&Usage);
甚至
GetOptions ( "domain=s" => \$domain,
"pandora=s" => \&Salt($_[1]),
"reverse=s" => \$reverse,
"help" => \&Usage)
or die(&Usage);
但无法正常工作
我知道我可以通过执行=> $ pandora使其工作,然后在代码中使用条件说明if($ pandora){&Salt($ pandora)},但是我发现将子项直接放入会更好如果可能,在getOptions中输入
谢谢
答案 0 :(得分:4)
"pandora=s" => sub { my ($optname, $optval) = @_; Salt($optval) },
它也可以处理哈希。