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 を 1 回押した後に単に ENTER) を押し続けます。実行されたばかりの行が原因です。n は、次のデバッガー ディレクティブを表します。

于 2009-06-11T08:52:15.170 に答える