Alexander (HH): SimpleXML -> Array

Beitrag lesen

Moin Moin!

Arbeite rekursiv oder mit einer To-Do-Liste.

Beispiel für Dateibäume, in ungeprüftem Perl.

  
  
# Rekursiv:  
sub scan  
{  
  my $where=shift;  
  print "Verzeichnis: $where\n";  
  my $dir=IO::Dir->new($where) or die "$where: $!";  
  my @items=$dir->read();  
  $dir->close(); # Handles gibt es nur begrenzt, also schnell wieder freigeben  
  foreach my $item (@items) {  
    if (-d "$where/$item") {  
      scan("$where/$item");  
    } else {  
      print "Datei: $where/$item\n";  
  }  
}  
  
  
# TO-DO-Liste:  
sub scan  
{  
  my $start=shift;  
  my @todo=($start);  
  while (@todo) {  
    my $where=shift @todo;  
    print "Verzeichnis: $where\n";  
    my $dir=IO::Dir->new($where) or die "$where: $!";  
    while (my $item=$dir->read()) {  
      if (-d "$where/$item") {  
        push @todo,"$where/$item";  
      } else {  
        print "Datei: $where/$item\n";  
      }  
    }  
    $dir->close();  
  }  
}  
  

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".