2012-07-17 6 views
8

Me acaban de preguntar por primera vez en una revisión de código para verificar el código de retorno de una llamada a la función GetOptions() del módulo Perl Getopt::Long.¿Debería verificar el código de retorno de Getopt :: Long :: GetOptions?

No recuerdo haber visto nunca una prueba para la función GetOptions().

Entonces, ¿hay alguna razón específica por la cual las personas generalmente no verifican el código de retorno de esta función?

Respuesta

11

Una de las razones que la gente no comprobar el valor de retorno de la función GetOptions es que quieren para procesar las opciones especificadas sin necesidad de utilizar Getopt::Long (mediante el análisis @ARGV directamente después de GetOptions se llama). O quizás solo quieran ignorar las opciones no especificadas. O bien, tal vez no saben que la función GetOptions puede fallar.

Siempre compruebo el valor de retorno porque me gusta detectar errores tipográficos en la línea de comandos. Una forma estándar de verificación hace uso del módulo de núcleo Pod::Usage (consulte el POD para obtener un código de ejemplo). Vea también: The Dynamic Duo --or-- Holy Getopt::Long, Pod::UsageMan!

+2

Normalmente compruebo el valor de retorno de 'GetOptions' si quiero hacer que el programa' muera' en los errores al analizar los argumentos de la línea de comando. Me gusta 'morir a menos que GetOptions (...)'. Si no, 'pass_trough' sigue siendo una opción para captar el resto de los argumentos en' @ ARGV'. –

+1

Cheers @toolic para la respuesta muy útil. No pensé en opciones mal escritas. Y muchas gracias por el enlace al artículo que proporciona más información sobre por qué debería agregar más pod a mi Perl. –

Cuestiones relacionadas