6

私がこれを行う場合:

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

常に usage() が呼び出されるため、明らかに 0 は整数値として認識されません。整数値 AND 0 を受け入れるにはどうすればよいですか?

4

1 に答える 1

11

ブール値として扱われる場合、0 は Perl によって偽の値と見なされます。

次のようなものが必要です

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

編集

元の質問に対するmswの優れたコメントもご覧ください

于 2010-03-10T15:10:27.087 に答える