Perché il mio programma Perl stampare il messaggio di aiuto quando un argomento ha 0 come valore?
-
19-09-2019 - |
Domanda
Se faccio questo:
GetOptions(
'u=s' => \$in_username,
'r=i' => \$in_readonly,
'b=i' => \$in_backup
);
exit usage() unless $in_username && $in_readonly && $in_backup;
e chiamare il programma in questo modo:
./app.pl -u david -r 12 -b 0
risulta sempre chiamando uso (), quindi ovviamente il 0 non è visto come un valore intero. Che cosa posso fare accettare valori interi e 0?
Soluzione
Quando trattata come un valore booleano, 0 è considerato un valore falso dal Perl
Hai bisogno di qualcosa come
exit usage() unless defined($in_username) && defined($in_readonly) && defined(in_backup);
Modifica
eccellente commento Si prega di consultare anche di rifiuti solidi urbani alla domanda iniziale
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow