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;
Windows 8 Store, un posto in prima filaLa pre-certificazione che permetterà di avere le nostre applicazioni... |
La concorrenza con C++11, async e la libreria ThreadingLa 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 StyleCome creare una semplicissima interazione in stile Metro con C++... |
C++11, la libreria standardLe funzioni sugli insiemi e i contenitori mutuati dalle estensioni... |
Azure, una nuvola tanti linguaggiEntrare con semplicità ed efficacia nel mondo di Windows Azure e... |
Guida AntipatternCome evitare le cattive abitudini, le worst practices e le trappole... |
RESTful Web Services - La GuidaDai principi ispiratori del Web programmabile e delle architetture... |
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
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |