Если он действительно никогда не возвращается, значит, он застревает в каком-то бесконечном цикле. Попробуйте запустить скрипт в командной строке с помощью отладчика Perl.
~$ perl -d my_script.pl
Обратите внимание, что сценарии CGI также могут быть прочитаны таким образом, и что они принимают аргументы командной строки в форме KEY = VAL, например, так:
~$ perl -d my_cgi.cgi var=foo var2=bar bananas=delicious
Отладчик perl сообщит вам список команд, которые он принимает, если вы наберете 'h', но наиболее важные из них:
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
Если вы обнаружите, что существует какая-то проблема с бесконечным циклом, отправьте ее как ошибку на http://rt.cpan.org (в частности, здесь: https://rt.cpan.org/Public/Dist/Display.html?Name=Spreadsheet-ParseExcel)