Re: Wie durchläuft man ein Hash? - 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 Sander (8133 Beiträge) am Sonntag, 9.März.2003, 23:36.
    Re: Wie durchläuft man ein Hash?

      >> Jo, das ist sogar noch schöner. ;)
      

      ne, das ist alt, macht kaum noch einer so ;-)
      foreach sieht einfach hübscher aus und zwar so:
      foreach (keys %hash){
      out "$_ => $hash{$_}<br>";
      }
      

      übr. geht das auch mit nur
      for(keys %hash)
      

      Sander


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Pouraga (1396 Beiträge) am Sonntag, 9.März.2003, 18:01.
    Wie durchläuft man ein Hash?

      Ich habe mich gerade selbst gewundert, aber ich weiss echt nicht wie ich es anstellen soll.

      Ich möchte eigendlich blos ein Hash in einer Schleife druchlaufen und in ihr Schlüssel und Wert in 2 Skalaren dann zur Verfügung haben.

      Für Listen macht man da einfach ein foreach Schleife, aber was gibt es da um das selbe bei einem Hash zu erreichen?

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Sonntag, 9.März.2003, 18:31.
    Re: Wie durchläuft man ein Hash?

      Ich bin doch noch selbst drauf gekommen. *g*

      Warum nicht aus nem Hash einfach ne Liste machen.

      foreach $schluessel (keys(%hash)) {
      my $wert = $hash{"$schluessel"};
      out "$schuessel  $wert";
      } 
       
      
      Wieder was gelernt und ich merke das ich noch viel zu wenig mit nem Hash gearbeitet habe. *g*

     Antworten

    Beitrag von fb (420 Beiträge) am Sonntag, 9.März.2003, 20:28. WWW: nextfloor.de
    Re: Wie durchläuft man ein Hash?

      Hallo Pouraga,

      schön das Du Dir selber antwortest, aber hier auch noch ne Lösung :-)

      while ( ($k,$v) = each %_hash ) {
      out "Schlüssel = $k Wert = $v<br>";
      }
      

      Schlüssel und wert in einem Rutsch.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Sonntag, 9.März.2003, 23:14.
    Re: Wie durchläuft man ein Hash?

      Ach, "each" ist das Zauberwort!

      Jo, das ist sogar noch schöner. ;)

      Danke dir!

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 9.März.2003, 23:36.
    Re: Wie durchläuft man ein Hash?

      >> Jo, das ist sogar noch schöner. ;)
      

      ne, das ist alt, macht kaum noch einer so ;-)
      foreach sieht einfach hübscher aus und zwar so:
      foreach (keys %hash){
      out "$_ => $hash{$_}<br>";
      }
      

      übr. geht das auch mit nur
      for(keys %hash)
      

      Sander

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Dienstag, 11.März.2003, 22:58.
    Re: Wie durchläuft man ein Hash?

      Ist ja irgendwie witzig das ich damit eine Diskussion ausgelöst habe.

      Also ich kann jetzt so direkt keinen Vorteil an der einen oder anderen Metode sehen. Ist wohl eher Geschmackssache.

      Da ich recht neugierig bin habe auch mal die Ausführungszeit getestet. Nach 30000 durchläufen der einen oder anderen Metode konnte man noch keinen Unterschied in der Ausführungszeit sehen.


      Wer selber schaun will:
      ------------------
      <perl>
      my %hash; 
      for(my $i = 1; $i <= 30000; $i++) {
      $hash{$i} = $i*2;
      }
      out "Zeit nach hash erzeugung  ".runtime."<BR>";
      my $tempzeit = runtime;
      if ($metode eq "foreach"){
      out "<h1>foreach</h1>";
      foreach (keys %hash){
      out "$_ => $hash{$_}#";
      } 
      }
      out "<BR>Zeit nach foreach  ".runtime."<BR>";
      if ($metode eq "while"){
      while (($k,$v) = each %hash) {
      out "$k => $v#";
      }
      }
      out "<BR>Zeit nach while  ".runtime."<BR>";
      $tempzeit = (runtime) - $tempzeit;
      out "<h2>Zeit $tempzeit ms";  
      </perl>
      <BR><BR>
      <a href="?metode=foreach">foreach</a>&nbsp;&nbsp;<a href="?metode=while">while</a>  
      
      ---------------------------------
      Wenn man übriegens bei der foreach Version sich die Variablen erst noch in eine schönere wandelt dauert die logischerweise etwas länger. Dafür ist sie wenn man es nicht braucht kurzer und übersichtlicher.


      Na wie dem auch sei, ich denke mal es ist Wurst, und ich werde mir eine aussuchen. ;) (ich sage aber nicht welche :P )

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 11.März.2003, 23:22.
    Re: Wie durchläuft man ein Hash?

      wenn du bei foreach $_ änderst, änderst du auch direkt im array den wert. hat aber nur einen sinn, wenn man ne liste und keinen hash verarbeitet, da wäre die liste ja nur temporär.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Dienstag, 11.März.2003, 23:39.
    Re: Wie durchläuft man ein Hash?

      Ne so meinte ich das auch nicht, (oder du meinst das jetzt nicht so wie ich meine das das du das meinst. *g*)

      Ich meinte wenn man jetzt in der Schleife nicht die Variablen

      $k,$v  oder $_ , $hash{$_} zu ansprechen möchte
      

      sonder z.B. $bla und $blub

      Dann währe es einmal so:
      ---------------------
      while ( ($bla,$blub) = each %hash ) {
      
      ...
      -------------------

      und einmal so
      --------------------
      foreach $bla (keys %hash){
      my $blub = $hash{$bla};
      
      ...
      --------------------

      Da ändert man doch jetzt nix am Hash. (oder?)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 12.März.2003, 00:05.
    Re: Wie durchläuft man ein Hash?

      nene, keine hektik, wollte dir nur noch einen vorteil von foreach zeigen... hat nix mit den hashes zu tun.

      Sander

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 12.März.2003, 14:59.
    Re: Wie durchläuft man ein Hash?

      > Also ich kann jetzt so direkt keinen Vorteil an der einen oder anderen Metode sehen. Ist wohl eher Geschmackssache.
      

      Seh ich auch so (Die "Diskussion" ging ja los, weil Du geschrieben hast: "ne, das ist alt, macht kaum noch einer so ;-)" - wieso ist das "alt" ? ;-)) )

      Nur so... ;-)

     Antworten


     
 Liste der Einträge von 39750 bis 39900: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.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!