繁体   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