Could it be that perl is cleaning up the temp data before it writes?
More or less. See the documentation for the Spreadsheet::WriteExcel close() method for more details.
If you have a followup question please post it to the Spreadsheet::WriteExcel Google group: http://groups.google.com/group/spreadsheet-writeexcel
-- John.