Just for giggles you could try and cast it to a varchar and see what you are getting - to keep the debugging simple I would just stick with the simpliest SQL that reproduces your bug, i.e.
SELECT 9999999999999.012. I'm forgetting my transact-SQL syntax but something like
SELECT varchar(999999999999.021) and see what perl reports - that BETTER work. I'm guessing there is some sort of binding under the hood to a NUMERIC which is not recognizing the precision length of your query. Making a
bug report with just this simple example would allow
mpeppler to hopefully reproduce and identify the problen quickly. Of course your version of
DBD::sybase is the most recent and you're not using an ancient sybase version, right?