2

具有以下 getoptions 功能。iifiles 参数是可选的,如果提供,它可以是 1 到多个。但是,当我运行此函数时,会收到一条错误消息“选项规范中的错误”。在 solaris 10 上运行的 Perl。不确定需要为 iiles 提供哪些多值选项。

GetOptions( 'reportdate=s' => \$cmdParams{repDate}
                   ,'switch=s' =>\$cmdParams{swi}
                   ,'iiles:s{,}' => \@inputFileArray
                   ,'h|?|help'  => \$help
                   );
4

2 回答 2

3

看起来您的Getopt::Long版本不支持重复说明符。您可以更新它,或使用逗号分隔的列表,例如:

GetOptions('iiles:s' => \$fileList);
@inputFileArray = split(/,/, $fileList);

@ARGV或者,在解析后使用列表中的其余参数:

GetOptions('somethings=i'=>\$some);
@inputFileArray = @ARGV;
于 2013-05-07T03:48:27.703 回答
2

在 solaris 10 上运行的 Perl。不确定需要为 iiles 提供哪些多值选项。

有你的问题。你运行的是什么版本的 Perl?上次我检查时,Solaris 上的 Perl 标准版本是 5.8.4。现在可能高达 5.8.9。问题是您想要的功能,将选项指定为'iiles:s{,}' => \@inputFileArray,可能不存在于您的Getopt::Long.

运行此命令:

 $ perldoc Getopt::Long

并寻找字符串coordinates=f{2}。如果找不到,则没有该选项。

你可以没有它。(仍然有指定多个值的方法),或者您可以尝试Sun 免费软件站点,看看他们是否有更新版本的 Perl,或者您可以Getopt::Long从 CPAN 下载最新版本。但是,请注意确保您下载的版本适用于您的 Perl 版本。我最近注意到一些较新的模块需要在 Perl post 5.10 中找到的功能。

于 2013-05-07T04:11:37.217 回答