私はperlスクリプトを実行しており、コマンドラインから複数の値を取得する必要があります。例:私はGetoptの::ロングを使用していると私はこれが仕事を得ることができます複数の値を持つコマンドライン引数
perl script.pl --arg1 op1 op2 op3
:
perl script.pl --arg1 op1 --arg1 op2 --arg1 op3
しかし、私は本当に(たい)する必要が最初のオプション。
私は彼らのドキュメントで確認し、これは私がやりたいことになっている:
GetOptions('arg1=s{3}' => \@myArray);
http://search.cpan.org/~jv/Getopt-Long-2.38/lib/Getopt/Long.pm#Options_with_multiple_values
しかし、私はこのエラーを取得しています:
Error in option spec: "arg1=f{3}"
任意のアイデア/ソリューション?
あなたのスクリプトの引数の別のユーティリティが必要ですか?コマンドラインから渡された引数はすべて、$ ARGV配列に格納されます。スクリプト内で内部的にソートして追跡することができます。 ソース:http://www.cyberciti.biz/faq/howto-pass-perl-command-line-arguments/ また、1つの引数を含めることができ、ユーザーは引用符で囲む必要があります:perlスクリプト。 pl - arg1 "op1 op2 op3" – OrionRogue
私は引用符について考え、別の解決策が見つからない場合はこれを使用して終了する可能性があります。私はおそらく$ ARGVを使うことができると知っていますが、私は多くの議論を持ち、Getopt :: Longは本当にすべてを追跡し、残念ながらARGVを変更するのに役立ちます。 – Chris911
ちょっとしたアイデア:シェルに何か問題があるかもしれません。スクリプトで期待することを得るために、簡単なプリントデバッグを行うことができますか? – ArtM