Update: The below issue has be resolved by recompiling DBD::Oracle against a later version of client libraries (22.214.171.124 instead of 11.2.0). The problem library was libclntsh in the Oracle client library which gets used at runtime by DBD::SQLAnywhere.
From unix (Solaris), I've been using DBD::Sybase. When we migrated to linux, we would occasionally get a 'statement interrupted by user' (with no user involved). The DBA said to use DBD::SQLAnywhere, so trying that, it seems to work, but haven't done any extensive testing yet, because there's another problem. Whenever there's an Oracle database handle already connected, the connect() to SQLAnywhere hangs, and eventually exits (w/SEGV), with no error message. Though if you connect to IQ/SQLAnywhere before Oracle, then it does seem to work.