I'll add my own comment here - you should try to use Sybase::BLK instead of Sybase::BCP if you can. It uses the same syntax, but is built with the Client Library API, which will avoid problems when loading to a DOL (row or data locked) table, or a partitioned table.
This said - the previous poster is correct - if you have a large array you should probably shell out and run the bcp binary - it'll be a lot faster.
Michael