Avete provato use warnings o usato -w? Abilitano i warning, utili per
individuare le pratiche dubbie.
Avete provato use strict? Vi impedisce di usare riferimenti simbolici, vi
costringe a predichiarare ogni subroutine che chiamate con una bareword (*)
e, cosa probabilmente più importante, vi costringe a predichiarare
le vostre variabili con my, our o use vars.
Avete controllato i valori di ritorno di tutte le chiamate di sistema? Il
sistema operativo (e di conseguenza il Perl) vi informa se hanno funzionato
o meno, e se non hanno funzionato vi dice perché.
open(FH, "> /etc/nonpossoscrivere")
or die "Non posso scrivere su /etc/nonpossoscrivere: $!\n";
Avete letto perltrap? è pieno di suggerimenti per programmatori
Perl vecchi e nuovi ed ha anche una sezione per coloro che giungono da
linguaggi come awk e C.
Avete provato il debugger Perl, descritto in perldebug? Potete eseguire
il vostro programma linea per linea, vedere cosa sta facendo e capire per
quale ragione non sta facendo ciò che dovrebbe.
(*) Letteralmente parola nuda, indica una parola che potrebbe essere la
chiamata di una funzione (ma non ha né & all'inizio né ()
alla fine) ed è per questo ambigua per perl a tempo di compilazione.
In assenza di use strict 'subs' (che genera errore) viene trattata come se
fosse inclusa tra virgolette. [NdT]
|