in reply to Error Handeling in Sybase::Dblib

The module is called Sybase::DBlib (CASE MATTERS!!!).
I know nothing about Sybase::DBlib , but if dbsqlexec is printing errors to STDOUT (if on the screen means STDOUT ), you should try something like (untested):
my $err = ""; { require IO::String; local *main::STDOUT = $err = IO::String->new; $tcm->dbsqlexec || die "Error in dbsqlexec"; }
now $err contains whatever dbsqlexec printed to STDOUT.

update: A better idea is to use select, as in (also untested):

my $err = ""; { my $orig = select IO::String->new(\$err); $tcm->dbsqlexec || die "Error in dbsqlexec"; select $orig; }

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.