Spec: endlosschleife

Kann mir jemand vieleicht weiterhelfen und zwar mir sagen warum das hier eine endlosschleife ergibt:

  
 my @jpg = glob("*.jpg");  
 my @gif = glob("*.gif");  
 my @jpeg = glob("*.jpeg");  
  
 my @files = (@jpg, @gif, @jpeg);  
 for my $item (@files) {  
  push @files, {ID => $item};  
 }  

  1. Hallo,

      
      # Nimm der Reihe nach die Einträge eines Arrays  
    
    >  for my $item (@files) {  
    
           # und hänge sie zusätzlich nochmals am Ende des Arrays an  
    
    >      [link:http://perldoc.perl.org/functions/push.html@title=push] @files, {ID => $item};  
    >  }  
    
      # Kein Wunder, wenn das Ende des Arrays nie erreicht werden kann,  
      # falls das Array zu Beginn nicht leer ist.  
    
    > 
    
    

    Freundliche Grüße

    Vinzenz

  2. Kann mir jemand vieleicht weiterhelfen und zwar mir sagen warum das hier eine endlosschleife ergibt:

    Das hat Dir Vinzenz schon gesagt, aber warum machst Du es so umständlich? Kürzer und eleganter geht's ab Perl 5.6.0 wie folgt:

    while(<*.{jpg,gif,jpeg}>) {  
      print $_, "\n";  
    }
    

    In $_ steht die aktuell gefundene Datei, damit kannst Du dann Deinen Hash füllen.

    Siechfred

    --
    Wir vom Moderatorenteam haben keinerlei Humor, von dem wir wüssten.