【发布时间】:2013-03-06 18:06:24
【问题描述】:
我一直在尝试调试此搜索模式未终止错误,但似乎无法找到(我猜我的 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;
【问题讨论】:
-
我认为您打算将
\n用于新行。/n没有特殊含义。另外,你用什么文本编辑器来编辑 perl 代码?它有syntax highlighting 功能吗? -
还有一点,你代码的最后三行似乎使用了here doc。请参阅链接以了解如何修复您的代码。
-
好的,谢谢伙计们..是的,我正在使用 notepad++ 和 gedit。编辑器对 CGI 脚本编写完全没有帮助。对我来说没有突出显示它的全黑文本:(你有推荐的文本编辑器吗?
-
这是个人选择,但是,您可以手动将语言设置为 perl 以在 notepad++ 中启用 perl 特定语法突出显示。也许,它本身并不理解 .cgi 扩展名。 Gedit 可能有一些类似的设置...
标签: perl