Schrift
[thread]7869[/thread]

übergebene Argumente auswerten



<< >> 10 Einträge, 1 Seite
tophoven
 2006-04-08 17:19
#64579 #64579
User since
2005-12-02
28 Artikel
BenutzerIn
[default_avatar]
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
renee
 2006-04-08 17:28
#64580 #64580
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Benutze am Besten das Modul CPAN:Getopt::Long:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/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
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
lichtkind
 2006-04-08 19:29
#64581 #64581
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
du meisnt du willst ein perl script mit argumenten aufrufen?

vielleichst suchst du auch den split befehlt (perldoc -f split)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
tophoven
 2006-04-08 20:35
#64582 #64582
User since
2005-12-02
28 Artikel
BenutzerIn
[default_avatar]
Hallo Renee,

besten Dank für Deine Hilfe, das Modul war genau das was ich gesucht habe.

Gruß

Franz-Josef
Crian
 2006-04-10 13:34
#64583 #64583
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
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
Dubu
 2006-04-10 14:42
#64584 #64584
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
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.
Crian
 2006-04-10 17:39
#64585 #64585
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
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
ptk
 2006-04-10 23:22
#64586 #64586
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[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.
esskar
 2006-04-11 22:44
#64587 #64587
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[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! :)
Crian
 2006-04-12 15:06
#64588 #64588
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
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
<< >> 10 Einträge, 1 Seite



View all threads created 2006-04-08 17:19.