モジュールを使用してGetopt::Long
コマンドライン引数を処理しています。
このモジュールの一般的な動作は-f
、変数のフルネームの代わりに渡すことができることです--file
。同時に、別のコマンドライン変数--find
があり、コマンドプロンプトでのみ-f
指定すると、エラーが返されます。
Option f is ambiguous (file, find).
このようなあいまいな使用をどのように抑えることができるのでしょうか。
前もって感謝します。
モジュールを使用してGetopt::Long
コマンドライン引数を処理しています。
このモジュールの一般的な動作は-f
、変数のフルネームの代わりに渡すことができることです--file
。同時に、別のコマンドライン変数--find
があり、コマンドプロンプトでのみ-f
指定すると、エラーが返されます。
Option f is ambiguous (file, find).
このようなあいまいな使用をどのように抑えることができるのでしょうか。
前もって感謝します。
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
この自動省略機能をオフにする場合は、Getopt::Longを使用して構成する必要があります。
use Getopt::Long qw(:config no_auto_abbrev) ;