Kurti: Optimierung

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

  1. 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.

  2. 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

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  3. 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

    --
    _ - jenseits vom delirium - _

       Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
    1. 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

      1. 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.

      2. 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

        --
        _ - jenseits vom delirium - _

           Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
        J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
    2. 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

      --
      _ - jenseits vom delirium - _

         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?