arrays – 在Perl数组中保存命令行选项的多个值

我有一个需要采取一些选项的脚本,其中一个是-i(输入).

我尝试了以下代码将输入参数输入到数组中:

#!/usr/bin/perl

use strict;
use warnings;
use Getopt::Long;

my @input = ();
my $help = '';
my $other = '';

GetOptions(
    'help'          =>  \$help,
    'input=s{1,}'   =>  \@input,
    'other=s'       =>  \$other
);

当我尝试将它作为./my_script.pl -i param1 param2 -o aaa运行时,我得到了这个:

Error in option spec: "input=s{1,}"

如果我使用perl显式运行它作为perl my_script.pl -i param1 param2 -o aaa一切顺利.
有没有办法将这些参数放入数组(不使用@ARGV)而不从命令行显式调用perl?

最佳答案 结果我安装了多个perl版本.其中一个(较旧版本)可能有较旧版本的Getopt :: Long模块,它不支持input = s {1,}语法.当我从最新安装的版本切换到调用perl时,脚本运行时没有错误.

点赞