Search code examples
perlgetoptgetopt-long

Should you check the return code from Getopt::Long::GetOptions?


I've just been asked for the first time in a code review to check the return code from a call to the GetOptions() function of the Getopt::Long Perl module.

I cannot remember ever seeing such a test for the GetOptions() function.

So is there a specific reason why people don't generally check the return code of this function?


Solution

  • One reason that people don't check the return value of the GetOptions function is that they want to process unspecified options without using Getopt::Long (by parsing @ARGV directly after GetOptions is called). Or, maybe they just want to ignore unspecified options. Or, maybe they are unaware that the GetOptions function can fail.

    I always check the return value because I like to catch typos on the command line. A standard way to check makes use of the Pod::Usage Core module (see the POD for example code). See also: The Dynamic Duo --or-- Holy Getopt::Long, Pod::UsageMan!