Programmazione  »  Guide  »  Guida Perl 

Test sui file



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;

Ultimi articoli Programmazione

Windows 8 Store, un posto in prima fila

La pre-certificazione che permetterà di avere le nostre applicazioni...

La concorrenza con C++11, async e la libreria Threading

La libreria Threading e i principali costrutti per sfruttare il...

Visual Studio 11 beta, le novità

Le caratteristiche più interessanti introdotte nella beta di Visual...

Windows 8, WinRT API e applicazioni Metro Style

Come creare una semplicissima interazione in stile Metro con C++...

C++11, la libreria standard

Le funzioni sugli insiemi e i contenitori mutuati dalle estensioni...

Altri articoli

Guide Programmazione

Azure, una nuvola tanti linguaggi

Entrare con semplicità ed efficacia nel mondo di Windows Azure e...

Guida Antipattern

Come evitare le cattive abitudini, le worst practices e le trappole...

RESTful Web Services - La Guida

Dai principi ispiratori del Web programmabile e delle architetture...

Altre guide

Newsletter @Programmazione

Ogni settimana, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto