Wenn ich dies tun:Warum druckt mein Perl-Programm die Hilfemeldung, wenn ein Argument 0 als Wert hat?
GetOptions(
'u=s' => \$in_username,
'r=i' => \$in_readonly,
'b=i' => \$in_backup
);
exit usage() unless $in_username && $in_readonly && $in_backup;
und das Programm wie folgt aufrufen:
./app.pl -u david -r 12 -b 0
es führt immer in Verwendung() aufrufen, so offensichtlich die 0 nicht als Integer-Wert gesehen. Was kann ich akzeptieren ganzzahlige Werte AND 0?
Ihre Aussage "die 0 wird nicht als ganzzahliger Wert gesehen" ist korrekt, aber "0" wird als falsch interpretiert: "A s Der Calar-Wert wird im Booleschen Sinn als TRUE interpretiert, wenn es nicht die Null-Zeichenkette oder die Zahl 0 (oder deren Zeichenkette-Äquivalent, "0") ist. Der boolesche Kontext ist nur eine spezielle Art von skalarem Kontext, in dem niemals eine Umwandlung in eine Zeichenkette oder eine Zahl durchgeführt wird. "Die Antwort von Dancrumb ist korrekt, wenn auch nicht so explizit wie Ihre falsche Darstellung. Http://perldoc.perl.org/perldata.html – msw