2016-08-08 8 views
4

いくつかのオプションが必要なスクリプトがありますが、そのうちの1つは-i(入力)です。 私は配列に入力パラメータを取得するには、次のコードを試してみました:Perlの配列に複数の値を保存する

#!/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としてそれを実行しようとすると、私はこの取得:私はperl my_script.pl -i param1 param2 -o aaaとしてPerlで明示的にそれを実行した場合

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

をすべてがスムーズに動作します。 明示的にコマンドラインからperlを起動しなくても、これらのパラメータをアレイに取得する方法はありますか(@ARGVを使用しない)

+1

これはどのバージョンのPerlですか? – simbabque

+0

'which perl'は何を返しますか? – Zaid

+0

'/ usr/bin/perl' – yonyon100

答えて

2

私には複数のバージョンのperlがインストールされています。そのうちの1つ(古いもの)はおそらく、input=s{1,}構文をサポートしないGetopt :: Longモジュールの古いバージョンを持っています。インストールされている最新のバージョンからperlを起動するように切り替えたとき、スクリプトはエラーなしで実行されました。

関連する問題