Frage zu GetOptions

20/12/2008 - 19:16 von Astrid Kuhr | Report spam
Hallo!

Bin dabei, ein Perl-Skript zu basteln, das
optionale Parameter haben kann.

Folgendes soll gehen:

script.pl -c --session dateiname und der rest wird durchgereicht
script.pl und der rest wird durchgereicht
script.pl --session dateiname -c und der rest wird durchgereicht
script.pl -c und der rest wird durchgereicht
script.pl --session dateiname und der rest wird durchgereicht

Es gibt also eine Option -c, die keinen Begleiter hat
und eine Option -s, die einen Dateinamen als Begleiter
hat. Der Rest der Parameter, der dann noch kommt, wird
an eine andere Routine durchgereicht.

Habe es erst mit Getopt:Std probiert, bin aber nicht
weitergekommen.

Jetzt probiere ich mit Getopt::Long.

Den Dateinamen herauszubekommen, das klappt schon,
nur leider das mit dem -c nocht nicht.
Wie bekommt man das hin, dass der Schalter richtig
erkannt wird?
Der Rest wird richtig erkannt.

use vars qw( $opt_c );
use Getopt::Long;
my @OptionFiles;
GetOptions ("session=s" => \@OptionFiles);
print "der Wert ist: ".$OptionFiles[0]."";
print "c ". $opt_c."";
print "Rest: @ARGV";

Gruss, Astrid
 

Lesen sie die antworten

#1 Frank Seitz
22/12/2008 - 16:16 | Warnen spam
Astrid Kuhr wrote:

Jetzt probiere ich mit Getopt::Long.

Den Dateinamen herauszubekommen, das klappt schon,
nur leider das mit dem -c nocht nicht.
Wie bekommt man das hin, dass der Schalter richtig
erkannt wird?
Der Rest wird richtig erkannt.

use vars qw( $opt_c );
use Getopt::Long;
my @OptionFiles;
GetOptions ("session=s" => \@OptionFiles);
print "der Wert ist: ".$OptionFiles[0]."";
print "c ". $opt_c."";
print "Rest: @ARGV";



Du hast die Option bei Aufruf von GetOptions() nicht spezifiziert.

Grüße
Frank
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Ähnliche fragen