5

モジュールを使用してGetopt::Longコマンドライン引数を処理しています。

このモジュールの一般的な動作は-f、変数のフルネームの代わりに渡すことができることです--file。同時に、別のコマンドライン変数--findがあり、コマンドプロンプトでのみ-f指定すると、エラーが返されます。

Option f is ambiguous (file, find).

このようなあいまいな使用をどのように抑えることができるのでしょうか。

前もって感謝します。

4

2 に答える 2

11

Getopt::Longドキュメントをご覧ください。

auto_abbrev

オプション名を一意に短縮できるようにします。環境変数POSIXLY_CORRECTが設定されていない限り、デフォルトが有効になります。設定されている場合、auto_abbrevは無効になります。


例:

use strict;
use warnings;
use Getopt::Long qw(:config no_auto_abbrev);

my ( $file, $fish );

GetOptions( "file=s" => \$file, "fish=s" => \$fish );

そしてテスト:

$ perl test.pl -fi 24
Unknown option: fi

$ perl test.pl -fis 24
Unknown option: fis
于 2012-06-28T11:38:42.957 に答える
3

この自動省略機能をオフにする場合は、Getopt::Longを使用して構成する必要があります。

use Getopt::Long qw(:config no_auto_abbrev) ;
于 2012-06-28T11:37:34.360 に答える