Set the timeout connection option so you aren't waiting forever.
$dsn = "dbi:Sybase:serverType=IQ:loginTimeout=240:timeout=180:server=$
+db_server_ifc";
my $dbh = DBI->connect($dsn,
$self->get_db_username(),
$self->get_db_password(),
\%connect_options );
my $sqlA =<< "END_SQLA";
SELECT table_id
FROM sys.systable
WHERE table_name like ?
AND length(table_name) = ?
AND user_name(creator) = ?
END_SQLA
my $sthA = $dbh->prepare($sqlA);
$sthA->execute($uc_table_name . '%', $table_name_len, $uc_schema);
DBD::Sybase works fine with IQ. That being said, connections to IQ work differently than other database systems. If you have 100 allowable connections, you may have 40 connections that can do work at a time. The other 60 will appear to hang from the application perspective. If you're running into this feature, it will also occur using dbisql or isql.