为什么我的Perl程序在参数的值为0时打印帮助消息?

前端之家收集整理的这篇文章主要介绍了为什么我的Perl程序在参数的值为0时打印帮助消息?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我这样做:
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?

解决方法

当被视为布尔值时,Perl认为0为假值

你需要类似的东西

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

编辑

另请参阅msw对原始问题的出色评论

猜你在找的Perl相关文章