my @lesen; push @lesen,'/startpfad'; my %datei1; local *VERZEICHNIS; while (scalar @lesen) { my $verz = shift @lesen; opendir (VERZEICHNIS,$verz) or die $!; foreach my $file (sort {$a cmp $b} readdir VERZEICHNIS) { if ($file eq '.' || $file eq '..') next; # Gleiches Ver. oder höher springen } elsif (-d "$verz/$file") { push @lesen,"$verz/$file"; next; # Verzeichnis gefunden } else { $datei1{$verz}{$file} = defined; # Datei gefunden } } }