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::LongCPAN から の最新バージョンをダウンロードすることができます。ただし、ダウンロードしたバージョンが Perl のバージョンで動作することを確認してください。私は最近、新しいモジュールのいくつかが Perl ポスト 5.10 に見られる機能を必要とすることに気付きました。

于 2013-05-07T04:11:37.217 に答える