1

この検索パターンが終了していないというエラーをデバッグしようとしてきましたが、終了していない場所 (for each ループだと思います) が見つからないようです。私のコードの最後の行は 160 行目です。コードのどこが間違っているかについて、誰かヒントを教えてもらえますか? 選択結果の各ヘッダーと各行の各データを印刷して、CGI ページに印刷しようとしています。

C:\xampp\cgi-bin>perl create_report.cgi 検索パターンが create_report.cgi の 160 行目で終了していません。

foreach $rpt_sel_output(@desc_origin)
{
($rptid, $servid, $rptcat_id, $desc, $remail_add, $remail_info, $ent_usr, $ent_dte, $up_usr, $up_dte, $fav)=split(",",$rpt_sel_output);
if($rptid eq 'ReportID') #header rows
{
print"<tr>/n";
print"<th>$rptid</th>";
print"<th>$servid</th>";
print"<th>$rptcat_id</th>";
print"<th>$desc</th>";
print"<th>$remail_add</th>";
print"<th>$remail_info</th>";
print"<th>$ent_usr</th>";
print"<th>$ent_dte</th>";
print"<th>$up_usr</th>";
print"<th>$up_dte</th>";
print"<th>$fav</th>";
print"<tr/>/n";
print"</table>/n";
next;
}
print"<tr>/n";# data from select that was outputed
print"<td>$rptid</td>";
print"<td align 'right'> $servid</td>/n";
print"<td align 'right'> $rptcat_id</td>/n";
print"<td align 'right'> $desc</td>/n";
print"<td align 'right'> $remail_add</td>/n";
print"<td align 'right'> $remail_info</td>/n";
print"<td align 'right'> $ent_usr</td>/n";
print"<td align 'right'> $ent_dte</td>/n";
print"<td align 'right'> $up_usr</td>/n";
print"<td align 'right'> $up_dte</td>/n";
print"<td align 'right'> $fav</td>/n";
print"<tr/>/n";
}
}
print"</table>/n";


print"<<FOOTER/n"; 
     </body>
print</html>FOOTER;
4

4 に答える 4

7

ヒアドキュメント スタイルの引用を行おうとしていると思いますが、次のようになります。

print <<FOOTER;
</body>
</html>
FOOTER

多くのprintステートメントを節約できます ;) 変数​​の補間が必要な場合は、ヒアドキュメントの終了トークンを二重引用符 ( print <<"FOOTER";) で囲みます。トークンを一重引用符で囲むと、補間が妨げられます (@daxim で指摘されています)。ヒアドキュメントの詳細については、perlopまたは JFGI を参照してください。

于 2012-04-24T13:59:46.827 に答える
0

あなたは単に印刷を逃します...あなたはそうではありませんか?これでスクリプトを終了する必要があります:

print"<FOOTER />\n"; 
print"</body>";
print "</html>";
于 2012-04-24T13:48:34.757 に答える
0

下部にあるこれらの印刷ステートメントの前後に二重引用符がありません。これらは次のようになります。

print"<<FOOTER/n"; 
print "</body>";
print "</html>FOOTER";

まだ使用していない場合は、構文ハイライト付きのエディターを使用する必要があります。彼らはこのような問題を明確に指摘しています。

エラーが検索パターンについて話していた理由は/、正規表現(または検索パターン)の定義を開始する文字が表示されていたためです。

于 2012-04-24T13:48:56.897 に答える
0

これは何ですか ?

</body>
print</html>FOOTER;

おそらくこれはあなたのエラーが存在する場所です。

于 2012-04-24T13:49:18.423 に答える