Thread Fehlermeldung bei leerem Verzeichnis (2 answers)
Opened by Alexander at 2012-03-05 22:15

topeg
 2012-03-05 22:40
#156642 #156642
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
-f testet ob es eine Datei ist
-d testet ob es ein Verzeichnis ist
glob() ließ den Inhalt eines Verzeichnisses mit Wildcards aus.

Also kann man kurz schreiben:
Code (perl): (dl )
1
2
3
4
unless(grep{-f $_}glob("$directory/*"))
{
  print "Keine Dateien in $directory\n";
}


wenn du das Verzeichnis schon gelesen hast:
Code (perl): (dl )
1
2
3
4
unless(grep{-f "$directory/$_"}@liste_gesammt)
{
  print "Keine Dateien in $directory\n";
}


Das "\n" bei push @liste_gesammt, "$entry\n"; ist eher schädlich als nützlich. Das wird später als Teil des Dateinamens verstanden.

nebenbei besser als das
Code (perl): (dl )
1
2
3
4
while( my $entry = readdir DIR )
{
  push @liste_gesammt, $entry;
}
ist das
Code (perl): (dl )
@liste_gesammt=readdir(DIR);
oder noch besser:
Code (perl): (dl )
1
2
3
opendir(my $dh, $directory) or die("Error opendir $directory ($!)\n");
my @liste_gesammt=readdir($dh);
closedir($dh);

View full thread Fehlermeldung bei leerem Verzeichnis