0

以下は、HTML ページをチャンク応答として送信するために使用しているスクリプトの一部です。ただし、スクリプトを実行すると、次のようなコンパイル エラーがスローされます。

nph-99_1_1_18.pl の 19 行目、"print "233" の近くでオペレーターが予期した場所に数値が見つかりました (18 行目から始まる暴走した複数行の "" 文字列である可能性があります)

#! /usr/bin/perl

print "HTTP/1.1 200 OK\n";
print "Connection: Close\n";
print "Content-type:text/html\n" ;
print "Transfer-Encoding:chunked\n\n" ;
print "96\r\n";
print <<EndText;
<html>
  <!-- this chunk is 150 bytes in length-->
  <head>
         <title>Document Title</title>
  <link REL="StyleSheet" TYPE="text/css" HREF="example.css">
  </head>

<body>
EndText
print "\r\n\";
print "233\r\n";
print <<EndText;
<!-- this chunk is 563 bytes in length-->
<h1 CLASS="funkyclass" ALIGN="center">Welcome to my home page!</h1>
  <br><br>
<p>Hi there! If you are reading this then you have found my home page!  Congratulations! I know it can be hard to find my pages, but I bet that you feel lucky now. Now that you are here, please take a look at my page of links to <a HREF="http://www.mysite.com/coolsites.html">cool sites</a> or sign my <a HREF="http://www.mysite.com/guestbook.html">guest book</a></p>
<div CLASS="foo"> My wonderful poetry <br> is available if you are REALLY bored. Why not give it a spin?</div>
EndText
print "\r\n\";
4

1 に答える 1

1

\あなたのprint声明の1つにオーバーヘッドの反発があります。その行をさらに下にコピーした別のものもあります。それは終了をエスケープする"ため、それ以降はすべて文字列として解釈されます。

<body>
EndText
print "\r\n\"; # <--- HERE (and also further down)
print "233\r\n";

構文の強調表示を備えたエディター/IDE を使用してコードを記述していますか? オンにして弦を突き出させます。そうすれば、エスケープ"された後のすべてが文字列として強調表示され、これを見逃すことはありません。

また、する必要がuse strictありuse warningsます。

于 2013-01-30T19:18:07.850 に答える