开发者

multiple Perl ` print $cgi->header, <<HTML; .... HTML ` statement gives problem

开发者 https://www.devze.com 2022-12-25 10:23 出处:网络
i have something like: #!/usr/bin/perl use strict; use warnings; use CGI::Simple; use DBI; my $cgi = CGI::Simple->n开发者_运维问答ew;

i have something like:

    #!/usr/bin/perl

use strict;
use warnings;
use CGI::Simple;
use DBI;

my $cgi = CGI::Simple->n开发者_运维问答ew;


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
}

when i run this i get an error like:

Error message: Can't find string terminator " HTML" anywhere before EOF at C:/xampp/htdocs/perl/action.pl line 14. ,

and when give space between << and HTML;

like :print $cgi->header, << HTML;

error changes to:

Error message: Can't find string terminator " " anywhere before EOF at C:/xampp/htdocs/perl/action.pl line 14. ,

what would be the reason for this?

note: parameters are passed from another page('selid' or 'delid' or 'upid')


It is necessary to make sure that the end tag for heredocs is at the beginning of the line or the tag will not be recognized by the interpreter. So put the HTML ending at the very beginning of the line, no whitespace before it.

Also keep in mind that using double quotes around the start tag (eg print <<"HTML";) allows variables to be interpolated, using single quotes doesn't and using the tag without either behaves like double quotes

0

精彩评论

暂无评论...
验证码 换一张
取 消