为什么TextMate在运行Perl脚本时总是抱怨'找不到字符串终止符''''?

时间:2009-06-11 08:36:45

标签: perl textmate

我有一个很长的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.";

3 个答案:

答案 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。