Perl 如何使用Getopt::Long从命令提示符检索参数?

Perl 如何使用Getopt::Long从命令提示符检索参数?,perl,command-line-arguments,Perl,Command Line Arguments,要求是 perl prg.pl --product --param Product1 --from FilePath 其中,--product指定对必须接受参数Product1的函数的引用,FilePath是要搜索产品的文件的路径 GetOptions('product=s'=>\&getproduct, 'param=s'=>\$param,'from=s'=>\$from); 尽管如此,在运行Perl程序时,它会给出一个错误,即product和from的值未初始

要求是

perl prg.pl --product --param Product1 --from FilePath
其中,
--product
指定对必须接受参数
Product1
的函数的引用,
FilePath
是要搜索产品的文件的路径

GetOptions('product=s'=>\&getproduct, 'param=s'=>\$param,'from=s'=>\$from);
尽管如此,在运行Perl程序时,它会给出一个错误,即product和from的值未初始化。
您能帮我解决这个问题吗?

您指出
产品
选项需要一个值(
=s
),所以

--product的值。(不是选项。) | |不以“-”开头,因此选项解析结束。 | | vvvvvvv --product--参数Product1--来自文件路径 ^^^^^^^^^^^^^^^^^^^^^^^^ | 不是选项,所以可以在@ARGV中找到。 修正:

GetOptions(
“help | h |?”=>\&help,
“产品”=>\$product,
'param=s'=>\$param,
'from=s'=>\$from,
)
或用法();
@ARGV==0
或用法(“太多的论点”);

有关
用法
帮助
的示例实现,请参阅。如果您指出
产品
选项需要一个值(
=s
),则

--product的值。(不是选项。) | |不以“-”开头,因此选项解析结束。 | | vvvvvvv --product--参数Product1--来自文件路径 ^^^^^^^^^^^^^^^^^^^^^^^^ | 不是选项,所以可以在@ARGV中找到。 修正:

GetOptions(
“help | h |?”=>\&help,
“产品”=>\$product,
'param=s'=>\$param,
'from=s'=>\$from,
)
或用法();
@ARGV==0
或用法(“太多的论点”);

有关
用法
帮助

getproduct
的示例实现,请参见。因此,它应该是
'product=s'=>\&getproduct
以及
param
来自
@vkkk05,
\
在那里,但由于格式不正确而被隐藏。今后,请提供错误消息,并提供最小的,问题的可运行演示。
getproduct
将作为引用传递。因此,它应该是
'product=s'=>\&getproduct
以及
param
来自
@vkkk05,
\
在那里,但由于格式错误而隐藏。今后,请提供错误消息,并提供问题的最小可运行演示。