我有类似的东西:
#!/usr/bin/perl
use strict;
use warnings;
use CGI::Simple;
use DBI;
my $cgi = CGI::Simple->new;
if ($cgi->param('selid'))
{
print $cgi->header, <<HTML;
<br/>this is SELECT
HTML
}
elsif ($cgi->param('delid'))
{
print $cgi->header, <<HTML;
<b>this is DELETE</b>
HTML
}
elsif ($cgi->param('upid'))
{
print $cgi->header, <<HTML;
<b>this is UPDATE</b>
HTML
}
当我运行这个时,我得到一个错误:
错误讯息: 在EOF之前的任何地方都找不到字符串终止符“HTML”:/xampp / htdocs / perl / action.pl第14行。
并在<<
和HTML;
喜欢:print $cgi->header, << HTML;
错误更改为:
错误消息:找不到字符串 终结者“”在EOF之前的任何地方 C:/xampp/htdocs/perl/action.pl行 14.,
这是什么原因?
注意:参数从另一个页面传递('selid'或'delid'或'upid')
答案 0 :(得分:3)
必须确保heredocs的结束标记位于行的开头,否则解释器将无法识别标记。所以把HTML结尾放在行的最开头,之前没有空格。
还要记住,在开始标记周围使用双引号(例如print&lt;&lt;“HTML”;)允许插入变量,使用单引号不使用标记而不使用双引号< / p>