User since
2005-12-02
28
Artikel
BenutzerIn
Hallo zusammen,
ich möchte ein Programm mit Argumenten starten. Leider bereitet mir das Auswerten der Argumente noch Schwierigkeiten.
Aufruf mittels programm.pl -p=3306 -x -f=file1.ini
my $arg = shift;
while (defined($arg)) {
$i++;
print "Argument $i: $arg \n";
....
$arg = shift;
}
Die Argumente werden sauber aufgelöst. Sie sehen dann genau so aus, wie ich mir das vorgestellt habe. Nur habe ich noch keine Elegante möglichkeit gefunden die Artgumente wie -p=3306 in die zwei Werte der Parameter (p) und den Wert (3306) zu zerlegen.
Hat hier jemand eine Idee für mich?
Besten Dank im voraus
Gruß
Franz-Josef
User since
2003-08-04
14371
Artikel
ModeratorIn
Benutze am Besten das Modul
Getopt::Long:
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
my ($p,$x,$f);
GetOptions('-p=n' => \$p,
'-x' => \$x,
'-f=s' => \$f);
# ... mehr Code
Aufruf: script.pl -p 3306 -x -f hallo
User since
2004-03-22
5697
Artikel
ModeratorIn + EditorIn
du meisnt du willst ein perl script mit argumenten aufrufen?
vielleichst suchst du auch den split befehlt (perldoc -f split)
User since
2005-12-02
28
Artikel
BenutzerIn
Hallo Renee,
besten Dank für Deine Hilfe, das Modul war genau das was ich gesucht habe.
Gruß
Franz-Josef
User since
2003-08-04
5873
Artikel
ModeratorIn
Es gibt auch noch Getopt::Std, das verwende ich meistens.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Ich habe früher auch für einfache Sachen Getopt::Std benutzt, aber Getopt::Long ist IMHO deutlich flexibler und praktischer. Ich benutze es nur noch.
User since
2003-08-04
5873
Artikel
ModeratorIn
Es gab irgendwas, was ich mit Getopt::Long nicht machen konnte, aber mit Getopt::Std, ich hab leider vergessen, was das war.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-11-28
3645
Artikel
ModeratorIn
[quote=Crian,10.04.2006, 15:39]Es gab irgendwas, was ich mit Getopt::Long nicht machen konnte, aber mit Getopt::Std, ich hab leider vergessen, was das war.[/quote]
Das kann ich mir wirklich nicht vorstellen.
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=Crian,10.04.2006, 15:39]Es gab irgendwas, was ich mit Getopt::Long nicht machen konnte, aber mit Getopt::Std, ich hab leider vergessen, was das war.[/quote]
wenn du es nicht weißt, dann brauchst du es auch nicht.
so einfach ist das! :)
User since
2003-08-04
5873
Artikel
ModeratorIn
Ich weiß es nicht mehr, weil es lange her ist.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite