From the documentation on the old Spreadsheet::WriteExcel module
MODIFYING AND REWRITING EXCEL FILES
An Excel file is a binary file within a binary file. It contains sever
+al interlinked checksums and changing even one byte can cause it to b
+ecome corrupted.
As such you cannot simply append or update an Excel file. The only way
+ to achieve this is to read the entire file into memory, make the req
+uired changes or additions and then write the file out again.
You can read and rewrite an Excel file using the Spreadsheet::ParseExc
+el::SaveParser module which is a wrapper around Spreadsheet::ParseExc
+el and Spreadsheet::WriteExcel. It is part of the Spreadsheet::ParseE
+xcel package: http://search.cpan.org/search?dist=Spreadsheet-ParseExc
+el.
However, you can only rewrite the features that Spreadsheet::WriteExce
+l supports so macros, graphs and some other features in the original
+Excel file will be lost. Also, formulas aren't rewritten, only the re
+sult of a formula is written.
The xlsx format is somewhat better documented, but the problem appears to remain.
print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."