I don't use Spreadsheet::ParseExcel any more, so I can't answer your question. I can however tell you where you are going wrong (like it says line 9 the call to Spreadsheet/ParseExcel->new()), what is going wrong (the function is expecting to be passed arguments in pairs) and how to check (look at line 167 inthe file /usr/local/share/perl5/Spreadsheet/ParseExcel.pm)
The documentation (that I can see) says that you call the Spreadsheet::ParseExcel module like this
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->parse('Book1.xls');
As others have mentioned you have some later mistakes as well, the 'worksheet' object returned by ParseExcel probably doesn't match the one needed by WriteExcel. So you have to unpick one and build up the other.