in reply to DBI - PL/SQL error catching

As Lachesis said, the HandleError attribute is probably what you are looking for. I use it in most of the cases where I need to report something back to the screen in a cgi. There are other methods, but this is one of the cleanest, and easiest to use.
my $dbh = DBI->connect("DBI:mysql:test:localhost", "user", "pass", { RaiseError => 0, PrintError => 0 } ); $dbh->{HandleError} = sub { print "Error received: $DBI::errstr\n"; exit; }; my $sth = $dbh->prepare("SELECT wibble FROM flubble"); $sth->execute();