# Funktion loescht nacheinander mittels foreach Schleife datei fuer datei im Ordner 2 sub loesche { 3 my ($ordner) = @_; # Funktion loesche wird mit Argument $ordner aufgerufen 4 opendir(DIR, $ordner)or die "Fehler: Kann Ordner '$ordner' kann nicht oeffnen: $!\n"; 5 my @remove = readdir(DIR); 6 close(DIR); 7 8 foreach my $datei (@remove){ 9 if ($datei eq "." or $datei eq "..") { # . und .. sollen nicht geloescht werden 10 next; 11 elseif (-l "$ordner/$datei") { 12 print "Habe einen Link $datei gefunden loesche diesen nicht\n"; 13 next; # überspinge rest der schleife überspringen 14 15 elseif (-d "$ordner/$datei") { 16 print "Habe ein Unterverzeichnis $ordner/$datei gefunden rufe die Funktion rekursiv auf \n"; 17 print "Befinde mich im Unterverzeichnis $ordner/$datei \n"; 18 &loesche($ordner); 19 print "Funktion rekursiv aufgerufen lösche alle Dateien im Unterverzeichnis $ordner/$datei \n"; 20 21 print LOGFILE "#\n#\n#\n"; 22 print LOGFILE "Habe die Datei $datei geloescht!\n"; 23 24 } 25 26 } 27 } else { 28 print "Lösche jetzt die Datei $ordner/$datei \n"; 29 # unlink löscht dateien im Ordner 30 unlink("$ordner/$datei") or warn "$!"; 31 } 32 # rmdir($ordner) or die $!; # rmdir löscht leere Verzeichnisse also den leeren Ordner 33 }