6
如果我這樣做:爲什麼我的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
它總是導致調用使用(),所以很明顯的0不能看作是一個整數值。 我能做什麼接受整數值和0?
您的語句「0不被視爲整數值」是正確的,但「0」被解釋爲false:「A s如果非空字符串或數字0(或其字符串等效,「0」),則標量值在布爾意義上被解釋爲TRUE。布爾上下文只是一種特殊類型的標量上下文,不會對字符串或數字進行任何轉換。「Dancrumb的回答是正確的,儘管對錯誤陳述沒有明確的規定。http://perldoc.perl.org/perldata.html – msw 2010-03-10 15:22:31