Thread Parameter übergeben per Konsole (4 answers)
Opened by la_dy82 at 2010-12-07 11:17

dgw
 2010-12-07 18:47
#143388 #143388
User since
2010-08-16
27 Artikel
BenutzerIn

user image
Hallo

Quote
...

Nun möchte ich die Werte auslesen:
Code: (dl )
1
2
3
4
getopts('A:E:G:Z:', \%opts);
my @werte = values %opts;

print "\n\tWert 0: " .$werte[0] ." Wert1: " .$werte[1] ." Wert2: " .$werte[2] ." Wert3: " .$werte[3];


Mein Problem ist, dass der Parameter , den ich unter A angegeben habe, nicht unter $werte[0] steht.Die Ausgabe print... zeigt mir den Inhalt an. Da ist alles durcheinander...

Woran liegt das??

Die Parameter werden von getopts in einem Hash gespeichert. Ein Hash hat keine Reihenfolge seines Inhalts. Wenn also nun mittels
Code (perl): (dl )
my @werte = values %opts
alle Werte in ein Array gepackt werden, dann die die Reihenfolge der Elemente zufällig.
Wenn die Werte in der Reihenfolge AEGZ benötigt werden, kannst Du doch einfach die Werte mittels
Code (perl): (dl )
my @werte = ( $opts{A} , $opts{E}, $opts{G}, $opts{Z} ) ;
abrufen. Oder noch eleganter mittels Hashslice
Code (perl): (dl )
my @werte = @opts{qw(A E G Z)} ;


Just my 2 cents.
Daniel

View full thread Parameter übergeben per Konsole