2 Hash of Hash zusammenfügen - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Kay Schaper (19 Beiträge) am Montag, 11.November.2002, 21:06.
    2 Hash of Hash zusammenfügen

      Hallo, Ich muss mich mal wieder voller Verzweifelung an euch wenden.

      Ich habe zwei Hash of Hash folgenden Types:
      $others{$id}{rank} = $rank;
      $others{$id}{name} = $name;
      $others{$id}{id} = $id;
      $others{$id}{alter} = $alter;
      
      und z.B.
      $members{$id}{rank} = $rank;
      $members{$id}{name} = $name;
      $members{$id}{id} = $id;
      $members{$id}{alter} = $alter;
      

      diese zusammen zu fügen geht ja ganz leicht:
      %zusammen=(%others,%members);

      Nur gibt es in den identische Schlüssel
      und ich möchte eine Fall zu Fall Unterscheidung haben welchen er nehmen und welchen er nicht nehmen soll. Dazu soll er das Alter von $id in den Hashes vergleichen und den Eintrag neuere Datums nehmen und den alten verwerfen.

      Mir zwei einfachen Hash bekomme ich das hin, gibt je genügend Anleitung dazu: z.B.
      foreach $hashref (\%hash1,\%hash2) {
          while (($k,$v)=each $%hashref) {
             if (exists $hash1u2{k}) { #kann man ja noch beliebig erweitern die bedingung
                 next; #verwerfe den eintrag
             }
             $hash1u2{$k}=$v;
          }
      }
      

      Nur mit HoH bekomme ich das nicht hin. Ich habe keine Ahnung wie ich jetzt meine Zuweisungen machen und was ich für k (key) und v (value) einsetzen muss. Bitte helft mir ;)

      p.s. für k dachte ich an $id, nur wie sieht dann der wert $v aus, den ich zuweisen muss?


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Kay Schaper (19 Beiträge) am Montag, 11.November.2002, 21:06.
    2 Hash of Hash zusammenfügen

      Hallo, Ich muss mich mal wieder voller Verzweifelung an euch wenden.

      Ich habe zwei Hash of Hash folgenden Types:
      $others{$id}{rank} = $rank;
      $others{$id}{name} = $name;
      $others{$id}{id} = $id;
      $others{$id}{alter} = $alter;
      
      und z.B.
      $members{$id}{rank} = $rank;
      $members{$id}{name} = $name;
      $members{$id}{id} = $id;
      $members{$id}{alter} = $alter;
      

      diese zusammen zu fügen geht ja ganz leicht:
      %zusammen=(%others,%members);

      Nur gibt es in den identische Schlüssel
      und ich möchte eine Fall zu Fall Unterscheidung haben welchen er nehmen und welchen er nicht nehmen soll. Dazu soll er das Alter von $id in den Hashes vergleichen und den Eintrag neuere Datums nehmen und den alten verwerfen.

      Mir zwei einfachen Hash bekomme ich das hin, gibt je genügend Anleitung dazu: z.B.
      foreach $hashref (\%hash1,\%hash2) {
          while (($k,$v)=each $%hashref) {
             if (exists $hash1u2{k}) { #kann man ja noch beliebig erweitern die bedingung
                 next; #verwerfe den eintrag
             }
             $hash1u2{$k}=$v;
          }
      }
      

      Nur mit HoH bekomme ich das nicht hin. Ich habe keine Ahnung wie ich jetzt meine Zuweisungen machen und was ich für k (key) und v (value) einsetzen muss. Bitte helft mir ;)

      p.s. für k dachte ich an $id, nur wie sieht dann der wert $v aus, den ich zuweisen muss?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 14.November.2002, 01:00.
    Re: 2 Hash of Hash zusammenfügen

      Ganz klar isses mir nich was Du machen willst, aber:

      foreach $hashref (\%hash1,\%hash2)
      {
        while(($k,$v)=each %$hashref)
        {
          $hash1u2{$k}=$v unless exists $hash1u2{$k};   #bedingung umgedreht ;-)
        }
      }
      

     Antworten


     
 Liste der Einträge von 42601 bis 42751:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.08s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!