我有一个很长的Perl脚本运行得很好,但总是会发出警告:
Can't find string terminator '"' anywhere before EOF at -e line 1
我在网上其他地方读到,这是因为滥用单引号或双引号而且错误通常会阻止脚本运行,但我的工作正常。我很确定我已经正确使用了我的报价。
还有什么可能导致此警告吗?
编辑: 我正在通过TextMate运行脚本,TextMate可能会生成一个新的Perl进程来运行我的脚本。
我在运行简单脚本时也遇到了错误,例如:
#!/usr/bin/perl -w
use strict;
use warnings;
print "Hello world.";
答案 0 :(得分:3)
是的,你是对的,你的脚本在我尝试时也会在TextMate中完成。
简单的解决方案:不要使用TextMate运行它;只需使用命令行:
cd Projectdirectory
chmod +x myscript.pl
./myscript.pl
Hello world
更复杂的解决方案:告诉TextMate他们的应用程序已损坏并等待他们修复它。该错误来自TextMate正在调用的其他一些Perl脚本。即使在TextMate中以Perl运行的完全空白文件也会因此错误而失败。
-Alex
答案 1 :(得分:2)
“at -e line 1”位表示它来自单行。我怀疑你的长脚本是在某个地方启动一个单独的perl进程(可能是间接的),并且perl是给出错误的东西(而不是做它应该做的任何事情。)
答案 2 :(得分:0)
执行
启动调试器 perl -d ./youscript.pl
然后按住[ENTER](或按n一次后按ENTER),直到看到警告 - 刚刚执行的行是你的罪魁祸首。 n代表下一个调试器指令btw。