Een bestand uit een map in Perl vertellen

Stel dat u een Perl-script bouwt om een ​​bestandssysteem te doorlopen en vast te leggen wat het vindt. Terwijl u bestandshandvatten opent, moet u weten of u te maken hebt met een echt bestand of met een map die u anders behandelt. U wilt een map globeren, zodat u het bestandssysteem recursief kunt blijven parseren. De snelste manier om bestanden uit mappen te vertellen, is door Perl's ingebouwde bestandstestoperators te gebruiken. Perl heeft operators die u kunt gebruiken om verschillende aspecten van een bestand te testen. De operator -f wordt gebruikt om reguliere bestanden te identificeren in plaats van mappen of andere soorten bestanden.

Gebruik van de -f Bestandstestoperator

 #! / usr / bin / perl -w
$ filename = '/path/to/your/file.doc';
$ directoryname = '/ path / to / your / directory';
if (-f $ bestandsnaam)
print "Dit is een bestand.";

if (-d $ directorynaam)
print "Dit is een map.";

Eerst maakt u twee strings: een die naar een bestand wijst en een die naar een map wijst. Test vervolgens de $ filename met de -f operator, die controleert of iets een bestand is. Hiermee wordt "Dit is een bestand" afgedrukt. Als u de operator -f in de directory probeert, wordt deze niet afgedrukt. Doe dan het tegenovergestelde voor de $ directoryname en bevestig dat het in feite een map is. Combineer dit met een map glob om uit te zoeken welke elementen bestanden zijn en welke mappen:

#! / usr / bin / perl -w
@files =;
foreach $ file (@files)
if (-f $ file)
print "Dit is een bestand:". $ File;

if (-d $ bestand)
print "Dit is een map:". $ File;


Een complete lijst met Perl-bestandstestoperators is online beschikbaar.