2

我有一个运行良好的长 Perl 脚本,但总是给出这个警告:

Can't find string terminator '"' anywhere before EOF at -e line 1

我在网上的其他地方读到,这是因为误用了单引号或双引号,并且该错误通常会阻止脚本运行,但我的工作。我很确定我正确地使用了我的引号。

还有其他可能导致此警告的原因吗?

编辑:我正在通过 TextMate 运行脚本,这可能会产生一个新的 Perl 进程来运行我的脚本。

当我运行简单脚本时,我实际上也遇到了错误,比如这个:

#!/usr/bin/perl -w
use strict;
use warnings;

print "Hello world.";
4

3 回答 3

3

是的,你是对的,当我尝试时,你的脚本在 TextMate 中也是如此。

简单的解决方案:不要使用 TextMate 运行它;只需使用命令行:

cd Projectdirectory
chmod +x myscript.pl
./myscript.pl
Hello world

更复杂的解决方案:告诉 TextMate 他们的应用程序已损坏并等待他们修复它。该错误来自 TextMate 正在调用的其他一些 Perl 脚本。即使是在 TextMate 中作为 Perl 运行的完全空白文件也会因此错误而失败。

-亚历克斯

于 2009-06-11T11:03:43.253 回答
2

“at -e line 1”位表示它来自单行。我怀疑你的长脚本在某个地方开始了一个单独的 perl 进程(可能是间接的),而 perl 是导致错误的原因(而不是做它应该做的任何事情。)

于 2009-06-11T08:47:09.127 回答
0

通过执行启动调试器

perl -d ./youscript.pl

然后继续按 n[ENTER] (或者在按一次 n 后直接按 ENTER)直到看到警告 - 刚刚执行的行是你的罪魁祸首。n 代表下一个调试器指令顺便说一句。

于 2009-06-11T08:52:15.170 回答