Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Test sui file

Introduzione al concetto di "verifica" sui file
Introduzione al concetto di "verifica" sui file
Link copiato negli appunti

Dopo aver parlato dei blocchi, può essere utile introdurre il concetto di "verifica" sui file. Ad esempio, avendo uno script del tipo:

#!/usr/bin/perl
print "Inserisci il nome del file che vuoi modificaren";
chomp($file=<StdIN>);
.....

E' probabile che l'utente indichi il file correttamente e che lo script proceda con successo; ma se ciò dovesse non accadere? Cosa succederebbe se l'utente inserisse come nome del file "caio" invece di "ciao"? Semplicemente lo script andrebbe ad editare un nuovo file (vuoto), che non è certo quello che volevamo! Tale inconveniente può essere superato come segue:

#!/usr/bin/perl
print "Inserisci il nome del file che vuoi modificaren";
chomp($file=<StdIN>);
if (-e $file) {
....
} else {
die "File non trovaton";
}

Cosa c'è di diverso da prima? A parte il blocco if/else, notate quel "if (-e $file)": rendendolo in italiano potrebbe essere "se esiste $file". Quindi l'interprete perl andrà prima a vedere se tal file esiste, ed in caso positivo passerà alla modifica. Dovesse non esistere, si blocca e visualizza un messaggio (il file non è stato trovato).
Ovviamente vi sono altri operatori oltre a "-e" ; vediamo i più importanti:

-z il file ha dimensioni nulle

-s il file ha dimensioni non nulle (restituisce le
dimensioni

-f il file è un file regolare

-d il file è una directory

-l il file è un link

-r il file è leggibile

-w il file è scrivibile

-x il file è eseguibile

-T il file è un file di testo

-B il file è un file binario (opposto di -B)

Sintetizziamo tutto con un esempio:

#!/usr/bin/perl
print "Inserisci il nome del filen";
chomp($file=<StdIN>);
print "Leggibilen" if -r $file;
print "Scrivibilen" if -w $file;
print "Eseguibilen" if -x $file;
print "Il file ha dimensioni nullen" if -z $file;
print "E' una directoryn" if -d $file;
print "E' un linkn" if -l $file;

Ti consigliamo anche