引数の値として0を持っているのに、なぜ私のPerlプログラムは、ヘルプメッセージを印刷していますか?

StackOverflow https://stackoverflow.com/questions/2417929

質問

私はこれを行う場合:

GetOptions(
    'u=s'    => \$in_username,
    'r=i'   => \$in_readonly,
    'b=i' => \$in_backup
    );

exit usage() unless $in_username && $in_readonly && $in_backup;

と、このようなプログラムを呼び出します:

./app.pl -u david -r 12 -b 0

はいつも明らかに0が整数値として見ていない、使用()を呼び出すことになります。 iは整数値0を受け入れる何ができるか?

役に立ちましたか?

解決

ブール値として扱う場合には、0のPerlによって偽の値であると考えられている

あなたが好きなものを必要とする

exit usage() unless defined($in_username) && defined($in_readonly) && defined(in_backup);

編集

また、元の質問にMSWの優れたコメントをご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top