2010-04-05 64 views
0

我有類似:

#!/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 
} 

當我運行此我得到一個錯誤,如:

錯誤消息: 無法找到字符串結束「 HTML」 EOF位於C之前的任何地方:/xampp/htdocs/perl/action.pl線14,

<<HTML;

0123之間給予空間

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

錯誤更改:

錯誤消息:無法找到字符串 終結者 「」 在 ÇEOF之前的任何地方:/xampp/htdocs/perl/action.pl線 14.

這是什麼原因?

注:參數從另一個頁面傳遞(「selid」或「delid」或「UPID」)

+0

順便說一下,腳本開始時的shebang也必須在開始時按照預期工作。 – Svante 2010-04-05 09:34:05

回答

3

有必要確保對here文檔結束標記是在該行或年初標籤不會被口譯員識別。所以把HTML結尾放在行的最開始,在它之前沒有空格。

也請記住,使用繞開始標記雙引號(如打印< <「HTML」),允許插入變量,使用單引號不和使用標籤沒有任何行爲就像雙引號

+0

此外,建議使用任何一種報價而不是沒有引號,這樣的行爲是明確的。 – 2010-04-05 09:53:22