如何使用Perl的Getopt :: Long以用户输入的顺序获取选项?

Jay*_*Jay 3 perl getopt

我有一个现有的Perl程序,它使用Getopt包和Getopt::Long::Configure其中permute一个选项.但是,现在我需要保持用户输入的选项的顺序.有一个选项$RETURN_IN_ORDER中提到的Long.pm,但是似乎并没有在任何地方使用的.

当我通过时return_in_order,我收到以下错误.


getopt的::长:未知配置参数 "return_in_order" 在C:/ Program Files文件/ IBM/RationalSDLC/common/lib目录/ perl5的/ 5.8.6 /的Getopt/Long.pm线1199.


有人可以告诉我这是否得到支持,如果有的话,正确的使用方法?如果没有,我想知道我的其他选择.

谢谢.

Jon*_*ler 6

你有两个答案指向'require_order',但我认为这些答案都误解了'require_order'和你寻求的东西.

如果未设置'require_order',则可以编写(在命令行上):

-a file -b
Run Code Online (Sandbox Code Playgroud)

其中-a和-b都是简单的选项(不参数).设置'require_order'后,'file'的存在将终止选项,' - b'标志变为'文件名'.

我认为你正在寻找的是一种机制,它允许你告诉'-a'出现在'file'和'-b'之前.我不认为Getopt :: Long支持这一点.事实上,我不知道任何Getopt ::*模块那样做(除了我自己的,未发表的,我有时使用的Getopt :: JLSS).[ 如果您对代码感兴趣,请在Gmail上发送电子邮件,在名字和姓氏之间使用一个点.]


Chr*_*ung 5

require_order根据我在这里的手册页,它被称为.:-)