If you switch to using Spreadhsheet::WriteExcel instead of ::Simple (or else just call the parent class methods) you can use the add_write_handler() method to modify the behaviour of write() and and write_row().
Other than that the best way is to unroll the loop as suggested by the other posters.
--
John.
Comment on Re: SpredSheet::WriteExcel - write_row () Method