If it truly is never returning then it must be getting stuck in some kind of infinite loop. Try running your script on the command line using the Perl debugger.
~$ perl -d my_script.pl
Note that CGI scripts can also be read in this way, and that they accept command line arguments in the form KEY=VAL like so
~$ perl -d my_cgi.cgi var=foo var2=bar bananas=delicious
The perl debugger will tell you a list of commands it accepts if you type 'h', but the most important ones are:
n: go to the next line
s: step into the next line (if it is a sub, otherwise is identical to 'n')
v: view the next few lines (can be used repeatedly)
c: continue to a line or subroutine
If you find that there is some kind of infinite loop problem, then submit it as a bug on http://rt.cpan.org (specificially, here: https://rt.cpan.org/Public/Dist/Display.html?Name=Spreadsheet-ParseExcel)