Thread Probleme mit GetOpt::Long
(19 answers)
Opened by YAPD at 2019-06-23 15:58
- und -- haben als Argumente ihre Berechtigung und sind nicht grundlegend falsch.
Das Argument "-" dient oft dazu, dem Programm mitzuteilen, dass es seinen Input von STDIN lesen soll. Mal als direktes Argument, mal als Argument für eine Option (z.B. --input - . Das Argument "--" ist definiert als "Ende der Optionen". Das würde ich nicht als falsch deklarieren. Das wird vom Getopt::Long rausgefiltert. Letzten Endes, alles was nicht von Getopt::Long irgendwie verarbeitet worden ist, sollte immer noch im @ARGV zu finden sein. Das sollte der Fall bei "-" und "---" der Fall sein. Du könntest also nach Deinem GetOptions() Aufruf, diesen Array @ARGV auf unerwünschte Optionen scannen. Code: (dl
)
1 :!perl getopt_long2.pl --foo=foo - -- --- Das "--" wird von Getopt::Long rausgefiltert; alles was danach käme, bleibt im @ARGV erhalten. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 use strict; use warnings; use 5.020; use Getopt::Long; my $foo; my $bar; GetOptions( 'foo:s' => \$foo, 'bar=i' => \$bar, ) or die "Optionsfehler"; say $_ for @ARGV; meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |