Hoe weet ik of een bestand bestaat in Perl

Perl heeft een aantal nuttige bestandstestoperators die kunnen worden gebruikt om te zien of een bestand bestaat of niet. Onder hen is -e, die controleert of er een bestand bestaat. Deze informatie kan nuttig voor u zijn wanneer u werkt aan een script dat toegang tot een specifiek bestand nodig heeft en u zeker wilt weten dat het bestand aanwezig is voordat u bewerkingen uitvoert. Als uw script bijvoorbeeld een logboek of een configuratiebestand heeft waarvan het afhankelijk is, controleert u dit eerst. Het onderstaande voorbeeldscript geeft een beschrijvende fout als er met deze test geen bestand wordt gevonden.

#! / Usr / bin / perl
$ filename = '/path/to/your/file.doc';
if (-e $ bestandsnaam)
print "Bestand bestaat!";

Eerst maakt u een tekenreeks met het pad naar het bestand dat u wilt testen. Dan wikkel je de -e (bestaat) instructie in een voorwaardelijk blok, zodat de afdrukinstructie (of wat u daar ook plaatst) alleen wordt aangeroepen als het bestand bestaat. Je zou kunnen testen op het tegenovergestelde - dat het bestand niet bestaat - met behulp van de tenzij voorwaardelijk:

tenzij (-e $ bestandsnaam) 
print "Bestand bestaat niet!";

Andere bestandstestoperators

U kunt twee of meer dingen tegelijk testen met de operatoren "en" (&&) of "of" (||). Enkele andere Perl-bestandstestoperators zijn:

  • -r controleert of het bestand leesbaar is
  • -w controleert of het bestand beschrijfbaar is
  • -X controleert of het bestand uitvoerbaar is
  • -z controleert of het bestand leeg is
  • -f controleert of het bestand een gewoon bestand is
  • -d controleert of het bestand een map is
  • -l controleert of het bestand een symbolische link is

Het gebruik van een bestandstest kan u helpen fouten te voorkomen of u bewust te maken van een fout die moet worden verholpen.