[英]Use javascript in Perl CGI
我試圖在perl CGI文件中運行javascript。 代碼如下
#!C:\wamp\bin\perl\bin\perl.exe
$html = "Content-Type: text/html
<HTML>
<HEAD>
<TITLE>Hello World</TITLE>
<SCRIPT TYPE="TEXT/JAVASCRIPT">
alert("i am here");
</SCRIPT>
</HEAD>
<BODY>
<H4>Hello World</H4>
<P>
Your IP Address is $ENV{REMOTE_ADDR}
<P>
<H5>Have a nice day</H5>
</BODY>
</HTML>";
print $html;
我收到內部服務器錯誤。
僅帶有html的代碼可以正常工作,請讓我知道在Perl中包含javascript必須做些什么
您必須在雙引號字符串中使用雙引號而不進行轉義。 內部服務器錯誤是由Perl試圖告訴您的,
$html = "..."TEXT/JAVASCRIPT"..."i am here"...";
是無效的Perl代碼。 如果您檢查服務器的錯誤日志,則會看到類似“在操作員期望的位置發現裸字...”的信息。
比較簡單的解決方案是使用here文檔 :
#!C:\wamp\bin\perl\bin\perl.exe
use strict;
use warnings;
my $html = <<"END HTML";
Content-Type: text/html
<HTML>
<HEAD>
<TITLE>Hello World</TITLE>
<SCRIPT TYPE="TEXT/JAVASCRIPT">
alert("i am here");
</SCRIPT>
</HEAD>
<BODY>
<H4>Hello World</H4>
<P>
Your IP Address is $ENV{REMOTE_ADDR}
<P>
<H5>Have a nice day</H5>
</BODY>
</HTML>
END HTML
print $html;
輸出HTML或JavaScript時使用qq()
。
#!C:\wamp\bin\perl\bin\perl.exe
use warnings;
use strict;
my $html = qq(Content-Type: text/html
<HTML>
<HEAD>
<TITLE>Hello World</TITLE>
<SCRIPT TYPE="TEXT/JAVASCRIPT">
alert("i am here");
</SCRIPT>
</HEAD>
<BODY>
<H4>Hello World</H4>
<P>
Your IP Address is $ENV{REMOTE_ADDR}
<P>
<H5>Have a nice day</H5>
</BODY>
</HTML>);
print $html;
您可以使用{}
代替()
作為分隔符。 見文件 。
{}代表您選擇的任何一對定界符。
正如已經指出的那樣,問題在於報價錯誤。
作為一個小技巧(除了固定上述引號之外)
加
use warnings;
use strict;
到腳本頂部,因此您始終可以通過執行perl -c
來檢查語法
在您的情況下:
C:\wamp\bin\perl\bin\perl.exe -c <filename>
這將立即向您顯示錯誤。
HTH喬治
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.