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?

È stato utile?

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
scroll top