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