Usate il modulo CGI::Carp. Esso sostituisce "warn" e "die", oltre alle
funzioni "carp", "croak" e "confess" del normale modulo Carp, con delle
versioni più esplicative e più sicure. I messaggi saranno
comunque inviati al normale error log del server.
use CGI::Carp;
warn "Questa e` solo una lamentela";
die "Ma questa e` una cosa piu` seria";
Il seguente utilizzo di CGI::Carp redireziona inoltre gli errori ad un file
di vostra scelta, collocato in un blocco BEGIN, in modo che vengano anche
catturati i warning generati al momento della compilazione:
BEGIN {
use CGI::Carp qw(carpout);
open(LOG, ">>/var/local/cgi-logs/miolog-cgi")
or die "Non riesco ad aggiunger righe a miolog-cgi: $!\n";
carpout(*LOG);
}
Potete anche far sì che gli errori fatali ritornino al browser del client,
il che va bene per il debugging ma potrebbe confondere l'utente.
use CGI::Carp qw(fatalsToBrowser);
die "Brutto errore qui";
Anche se l'errore accade prima che abbiate inviato gli header HTTP, il
modulo cercherà di occuparsi di ciò, così da evitare
i temuti errori 500 del server. I normali warning continueranno ad essere
inviati all'error log del server (o in qualunque posto li abbiate
redirezionati con "carpout"), preceduti dal nome dell'applicazione e
dalla data.
|