Optimierung
Kurti
- perl
0 Struppi0 MudGuard0 Patrick Andrieu0 Kurti0 Patrick Andrieu
Hi,
wenn ein UP ein array zurückgibt (z.B. 2 Werte), dann sieht der Aufruf
z.B. so aus
my ($wert1, $wert2) = up(...);
Jetzt kann ich mit $wert1 und $wert2 weiterarbeiten.
Gibt es eine kürzere (elegantere) Version, wenn ich im konkreten Fall nur die erste Variable benötige
my ($wert1) = up(...); ??????
oder nur die 2. Variable?
my (, $wert2) = up(...); ??????
Gruß
Kurti
wenn ein UP ein array zurückgibt (z.B. 2 Werte), dann sieht der Aufruf
z.B. so aus
Was ist denn ein UP?
my ($wert1, $wert2) = up(...);
Jetzt kann ich mit $wert1 und $wert2 weiterarbeiten.
Gibt es eine kürzere (elegantere) Version, wenn ich im konkreten Fall nur die erste Variable benötige
my ($wert1) = up(...); ??????
oder nur die 2. Variable?
my (, $wert2) = up(...); ??????
Du meinst so:
my ($wert1, undef) = up(...);
my (undef, $wert2) = up(...);
Struppi.
Hi,
wenn ein UP ein array zurückgibt (z.B. 2 Werte), dann sieht der Aufruf
my ($wert1) = up(...); ??????
oder nur die 2. Variable?
my (, $wert2) = up(...); ??????
Klingt nach einem Anwendungsfall für Perls slice für Arrays.
cu,
Andreas
Hallo Kurti!
my ($wert1) = up(...); ??????
Nehmen wir als Beispiel »localtime«. Diese Funktion liefert ein Array mit neun Werten (0..8). Das Jahr ist der sechste Wert (also Wert Nr. 5).
my $year = (localtime)[5];
print $year; # 109
Syear += 1900;
print $year; #2009
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo Patrick,
Nehmen wir als Beispiel »localtime«. Diese Funktion liefert ein Array mit neun Werten (0..8). Das Jahr ist der sechste Wert (also Wert Nr. 5).
my $year = (localtime)[5];
Wenn ich es richtig verstehe, in meinem Fall, wo die gerufene Funktion "UP" Parameter empfängt, also
my $erg = (UP(param1,.....paramn))[5]
?
Viele Grüße
Kurti
Wenn ich es richtig verstehe, in meinem Fall, wo die gerufene Funktion "UP" Parameter empfängt, also
my $erg = (UP(param1,.....paramn))[5]
?
Ja, das verstehst du richtig.
Struppi.
Hallo Kurti!
Wenn ich es richtig verstehe, in meinem Fall, wo die gerufene Funktion "UP" Parameter empfängt, also
my $erg = (UP(param1,.....paramn))[5]
Genau (falls Deine Funktion sechs Werte zurückliefert). Um noch mal auf mein Beispiel mit localtime zu kommen, kannst Du, falls Du das Jahr brauchst und beispielsweise wissen willst, ob Sommerzeit/Winterzeit (der letzte Wert im Array von localtime) ist, folgendes schreiben:
my ($year, $dst) = (localtime)[5, 8];
$year += 1900;
print $year; # 2009
print $dst; # 0 (Winterzeit)
Das Stichwort hat Mudguard bereits geliefert: Array-Slice.
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo Patrick!
Syear += 1900;
Ups!
Das kommt daher, dass ich sowas ($scalar) wie folgt lese:
S-SCALAR
Wie »lest« Ihr denn Eure Variablen?
DOLLAR-SCALAR?
KLAMMERAFFE-ARRAY?
PROZENT-HASH?
Würde mich interessieren... ;)
Viele Grüße aus Frankfurt/Main,
Patrick