I do not have a solution to your problem, but here are some things you could try:
- Sift through the 31 bugs listed in Spreadsheet::ParseExcel (click the "View Bugs" link).
- Use Super Search, text = "ParseExcel".
- Delete all but 4 of your worksheets. Do you still get the problem? If so, there may be something quirky about your 4th sheet. If not, there may be a memory issue, as you suspect. Try to reduce the amount of data to pinpoint the problem.
- Remember that print and Data::Dumper
are your friends.
Good luck.