簡體   English   中英

在Perl CGI中使用javascript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM