2012-07-17 9 views
8

Ich wurde gerade in einem Code-Review zum ersten Mal aufgefordert, den Return-Code von einem Anruf an die GetOptions() Funktion des Getopt::Long Perl-Moduls zu überprüfen.Sollten Sie den Rückgabecode von Getopt :: Long :: GetOptions überprüfen?

Ich kann mich nicht erinnern, jemals einen solchen Test für die GetOptions() Funktion gesehen zu haben.

Gibt es also einen bestimmten Grund, warum Leute nicht allgemein den Rückkehrcode dieser Funktion überprüfen?

Antwort

11

Ein Grund, dass die Menschen nicht den Rückgabewert der Funktion GetOptions prüfe ist, dass sie ohne unspecified Optionen bearbeiten möchten Getopt::Long mit (von @ARGV direkt nach GetOptions Parsing bezeichnet wird). Oder vielleicht wollen sie einfach nicht spezifizierte Optionen ignorieren. Oder sie wissen vielleicht nicht, dass die GetOptions-Funktion fehlschlagen kann.

Ich überprüfe immer den Rückgabewert, weil ich Tippfehler in der Befehlszeile mag. Eine Standardüberprüfung erfolgt über das Core-Modul Pod::Usage (siehe Beispielcode POD). Siehe auch: The Dynamic Duo --or-- Holy Getopt::Long, Pod::UsageMan!

+2

Normalerweise überprüfe ich den Rückgabewert von 'GetOptions', wenn ich das Programm' sterben' will bei Fehlern beim Parsen von Befehlszeilenargumenten. Wie 'sterben außer GetOptions (...)'. Wenn nicht 'pass_trough' ist immer noch eine Option, um den Rest der Argumente in' @ ARGV' zu erfassen. –

+1

Cheers @toolic für die sehr nützliche Antwort. Ich dachte nicht an falsch geschriebene Optionen. Und vielen Dank für den Link zu dem Artikel mit mehr Informationen, warum ich mehr Pod zu meinem Perl hinzufügen sollte! –

Verwandte Themen