my @delarray; my @lesen; push @lesen,"$suchpfad"; while (scalar @lesen) { my $verz = shift @lesen; opendir (VERZEICHNIS,$verz) or die "$!"; foreach my $file (sort {$a cmp $b} readdir VERZEICHNIS) { if (-d "$verz/$file") { push @lesen,"$verz/$file" if $file ne '.' && $file ne '..'; } elsif ($file =~ /^$xmldatei$/) { #hier mache ich noch ein paar wilde Sachen, # u.a. wieder Verzeichnisse in @delarray pushen } } closedir VERZEICHNIS; } foreach(@delarray) { rmdir $_ || die "remove dir: $!"; }