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不被视为整数值。我能做什么接受整数值和 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 回答