2012-07-17 12 views
8

Właśnie zostałam poproszona po raz pierwszy w przeglądzie kodu, aby sprawdzić kod powrotu z połączenia z funkcjąPerl.Należy sprawdzić kod powrotu z Getopt :: Long :: GetOptions?

Nie pamiętam, abym kiedykolwiek widział taki test dla funkcji GetOptions().

Czy istnieje szczególny powód, dla którego ludzie zwykle nie sprawdzają kodu powrotu tej funkcji?

Odpowiedz

11

Jednym z powodów, że ludzie nie sprawdzić wartość zwracaną przez funkcję GetOptions jest to, że chcą przetwarzać opcje nieokreślone bez użycia Getopt::Long (analizując @ARGV bezpośrednio po GetOptions nazywa). A może po prostu chcą zignorować nieokreślone opcje. A może nie są świadomi, że funkcja GetOptions może zawieść.

Zawsze sprawdzam wartość zwracaną, ponieważ lubię łapać literówki w wierszu poleceń. Standardowy sposób sprawdzenia korzysta z modułu rdzeniowego Pod::Usage (patrz przykładowy kod POD). Zobacz także: The Dynamic Duo --or-- Holy Getopt::Long, Pod::UsageMan!

+2

Zazwyczaj sprawdzam wartość zwracaną przez 'GetOptions', jeśli chcę uczynić program' die' na błędach podczas analizowania argumentów wiersza poleceń. Jak 'umrzeć, chyba że GetOptions (...)'. Jeśli nie 'pass_trough' jest nadal opcją przechwytywania pozostałych argumentów w' @ ARGV'. –

+1

Cheers @toolic za bardzo przydatną odpowiedź. Nie myślałem o błędnie wpisanych opcjach. I wielkie dzięki za link do artykułu dostarczającego więcej informacji o tym, dlaczego powinienem dodać więcej strąków do mojego Perla! –

Powiązane problemy