我正在尝试从我的HTML页面调用perl脚本。我尝试做的方法是调用位于服务器上的perl脚本的url。
这是一段代码:
HTML:
var fname = "Bob";
var url='http://xxx.com:30000/cgi-bin/abc.pl?title=fname';
window.open(url,"_self");
我试图在perl中检索它的方式如下:
的Perl:
print "$ARGV[0]\n";
现在,我有3个问题:
_self
。它仍然没有。有人能指出问题吗?
谢谢, 蜂音
答案 0 :(得分:4)
否@ARGV
包含命令行参数,并且为空。
您需要CGI模块
use warnings;
use strict;
use CGI;
my $query = CGI->new;
print $query->param( 'title' );
编辑: 看看dan1111关于如何生成HTML并在浏览器中显示它的答案。
答案 1 :(得分:3)
除了Matteo所说的,一个简单的print
语句还不足以向浏览器发送一些输出。
请参阅a recent answer I wrote,提供带有输出的示例CGI脚本。
关于你的其他问题:
变量将附加到以&
分隔的网址:
var url='http://xxx.com:30000/cgi-bin/abc.pl?title=fname&description=blah';
根据this question,您可能应该尝试使用window.location.href = url;
(尽管这并不能解释您的代码无效的原因)。
答案 2 :(得分:1)
有两种不同的环境,每种环境都以两种不同的方式传递变量。命令行可以通过@ARGV传递变量,浏览器可以通过@ENV传递变量。使用哪种语言并不重要,那些是你必须使用的数组。