in reply to reading excel files

It's good, but with certain caveats.

A former employer is making heavy use of it to do signage for a very large, very old Canadian department store. Seems they used to get product tickets sent as XLS, and some poor designer had to print it out, and copy the details back into QuarkXPress by hand. As these tickets were delivered in batches of hundreds at a time, this was slow, and mind-numbing.

With Spreadsheet::ParseExcel, they are now able to write out XPress Tags data of the fields they want, and are able to turn around a job in a couple of hours.

If you are using a Windows box, the previous suggestion to use one of the builtin routines makes sense. On any other platform, though, it's Spreadsheet::ParseExcel is useful.

Not all XLS files are created equal, though. Ones that have been through OpenOffice don't seem to contain any data when parsed by Spreadsheet::ParseExcel, so be careful, test, and test your tests!

--
$,="\n";foreach(split('',"\3\3\3c>\0>c\177cc\0~c~``\0cc\177cc")) {$a++;$_=unpack('B8',$_);tr,01,\40#,;$b[$a%6].=$_};print@b,"\n"