如果我这样做:
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对原始问题的出色评论