PERL - Fehlermeldung bei getopts abschalten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

PERL - Fehlermeldung bei getopts abschalten

Beitrag von Duff » 02.11.2006 15:37:43

Hallo,

ich bekomme es nicht hin, dass ich bei getopts mit falscher Parameterangabe nicht den error-text bekomme. Habe auch schon im Netz danach gesucht, konnte aber nichts brauchbares finden.

Wollte das ganze so realisieren:

Code: Alles auswählen

use Getopt::Std;

my %option = ();

getopts('e:', \%option);

if (!$option{e})
{
        usage();
        exit;
}
else
{
        print "Argument is: $option{e}\n";
}
# Funktion usage()
#
sub usage {
        print "\nUsage: skript.pl -e <Arguments>\n\n";
}
Wenn ich das Skript aufrufe und nicht -e als Option angebe, sondern z.B. -d, bekomme ich zwar die usage, aber auch noch das hier:

Code: Alles auswählen

Unknown option: d
Habe z.B. das hier gefunden, verstehe aber nicht, wie und welche Variablen ich auf true oder false setzen muss.
Oh, yeah!

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 02.11.2006 16:03:47

Soweit ich das aus der kurzen Doku von Getopt::Std ersehe, kannst du da gar nichts machen.
Getopt::Long hat dafuer aber eine Interessante Option:

Code: Alles auswählen

use Getopt::Long;
Getopt::Long::Configure("pass_through");
Damit werden Schalter, die Getopt::Long nicht korrekt parsen kann ein @ARGV belassen und nicht weiter beachtet. Ich wuerd dir eh zu Getopt::Long raten, das kann wesentlich mehr als Getopt::Std.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 02.11.2006 16:47:28

Ok, danke.

Dann werde ich mir das mal anschauen und es damit probieren.
Oh, yeah!

Antworten