0

エラーメッセージの取得に関するいくつかの投稿をここで読みました-

EOFの前のどこにも文字列ターミネータ""が見つかりません...

EOFの前のどこにも文字列ターミネータ"'"が見つかりません...

持ち帰りのメッセージは一重引用符を使用しないことですが、私はそれを本当に理解しているとは思いません。さて、一重引用符は使用しないようにします。しかし、それでも、可能であれば、Perlがそれらをどのように異なって見るかという点で、誰かが2つのスクリプトの違いを理解するのを手伝ってくれるでしょうか。

#!/usr/bin/perl -w
#backwhacking
print "c:\\WINNT\\Profiles\\\n";
print 'c:\WINNT\Profiles\ ', "\n";

#!/usr/bin/perl -w
#backwhacking
print "c:\\WINNT\\Profiles\\\n";
print 'c:\WINNT\Profiles\', "\n";

最初のスクリプトは出力で正常に実行されます

c:\WINNT\Profiles
c:\WINNT\Profiles

一方、2番目のスクリプトでは、スクリプトターミネータ「'」が見つからないという同じエラーコードが表示されました。

そして、Perlプログラミングが一重引用符で囲まれたスペースの有無を区別する必要がある「理由」はありますか?申し訳ありませんが、コンピュータサイエンス以外の人にとっては些細なことのようです。

4

1 に答える 1

3

'スタイル引用符はバックスラッシュを使用して'文字をエスケープします。

だから:print '\''; \'文字列ではなく、'文字を出力します。

'whatever\'を印刷すると-最後にスペースを入れて>whatever<-を印刷します。しかし、あなたがそうするなら:

print 'whatever \'

バックスラッシュが'をエスケープするため、これは終了文字列ではありません。したがって、以下, "\n";は''文字列の一部として扱われます。

于 2013-02-12T21:51:52.823 に答える