no... se inserisci die viene stampato un messaggio sullo STDERR e il programma esce.

per ottenere quello che vuoi devi scrivere qualcosa del genere:

$stat = $database->prepare("SELECT * FROM tabella where condizione") || &errore('metti quello che vuoi', $DBI::errstr);


sub errore {
my $label = shift;
my $err = shift;

# qui di seguito inserisci le operazioni che vuoi fare
....
exit;
}

un ultima cosa... è ancora più importante controllare il successo o meno di execute().