So erkennen Sie eine Datei aus einem Verzeichnis in Perl

Angenommen, Sie erstellen ein Perl-Skript, um ein Dateisystem zu durchlaufen und aufzuzeichnen, was es findet. Beim Öffnen von Dateihandles müssen Sie wissen, ob es sich um eine tatsächliche Datei oder ein Verzeichnis handelt, das Sie anders behandeln. Sie möchten ein Verzeichnis globalisieren, damit Sie das Dateisystem weiterhin rekursiv analysieren können. Der schnellste Weg, Dateien von Verzeichnissen zu unterscheiden, ist die Verwendung der in Perl integrierten Dateitestoperatoren. Perl verfügt über Operatoren, mit denen Sie verschiedene Aspekte einer Datei testen können. Der Operator -f wird verwendet, um reguläre Dateien anstelle von Verzeichnissen oder anderen Dateitypen zu identifizieren.

Verwenden des Operators -f File Test

 #! / usr / bin / perl -w
$ filename = '/path/to/your/file.doc';
$ directoryname = '/ path / to / your / directory';
if (-f $ filename)
print "Dies ist eine Datei.";

if (-d $ verzeichnisname)
print "Dies ist ein Verzeichnis.";

Zunächst erstellen Sie zwei Zeichenfolgen: eine, die auf eine Datei und eine, die auf ein Verzeichnis verweist. Als nächstes testen Sie die $ filename mit dem -f Operator, der prüft, ob es sich um eine Datei handelt. Daraufhin wird "Dies ist eine Datei" gedruckt. Wenn Sie den Operator -f für das Verzeichnis versuchen, wird es nicht gedruckt. Dann machen Sie das Gegenteil für die $ directoryname und bestätigen Sie, dass es sich tatsächlich um ein Verzeichnis handelt. Kombinieren Sie dies mit einem Verzeichnis glob, um herauszufinden, welche Elemente Dateien und welche Verzeichnisse sind:

#! / usr / bin / perl -w
@files =;
foreach $ file (@files)
if (-f $ file)
print "Dies ist eine Datei:". $ file;

if (-d $ file)
print "Dies ist ein Verzeichnis:". $ file;


Eine vollständige Liste der Perl File Test-Operatoren ist online verfügbar.