Well, it is an improvement over Spreadsheet::ParseExcel.
Before creating new Spreadsheet::ParseExcel and parsing file:
total used free shared buffers cac
Mem: 3011 345 2666 0 4
-/+ buffers/cache: 154 2857
Swap: 956 182 774
(For those not familiar with *nix, when a machine runs out of memory, the kernel starts killing processes to free some. Usually, the first process to go is the one that claimed the most, like in this case my testprogram that tries to parse the xls-file).
[10998050.203177] Out of memory: Kill process 32189 (testinterfaces.)
+score 676 or sacrifice child
[10998050.203180] Killed process 32189 (testinterfaces.) total-vm:2893
+916kB, anon-rss:1958024kB, file-rss:0kB