当参数值为 0 时,为什么我的 Perl 程序会打印帮助消息?
如果我这样做:
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?
If i do this:
GetOptions(
'u=s' => \$in_username,
'r=i' => \$in_readonly,
'b=i' => \$in_backup
);
exit usage() unless $in_username && $in_readonly && $in_backup;
and call the program like this:
./app.pl -u david -r 12 -b 0
it always results in calling usage(), so obviously the 0 is not seen as an integer value.
What can i do accept integer values AND 0?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当被视为布尔值时,Perl 认为 0 是假值
您需要类似
EDIT 的
内容,另请参阅 msw 对原始问题的出色评论
When treated as a boolean, 0 is considered to be a false value by Perl
You need something like
EDIT
Please also see msw's excellent comment to the original question