从html将变量传递给perl脚本

时间:2012-10-25 07:44:18

标签: html perl url-parameters

我正在尝试从我的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个问题:

  1. 我认为这是传递变量的正确方法,但我无法在perl中打印参数。
  2. 如果我想传递另一个变量lname,我该如何将其附加到网址?
  3. 我的window.open应该在同一窗口中打开输出,因为它使用参数_self。它仍然没有。
  4. 有人能指出问题吗?

    谢谢, 蜂音

3 个答案:

答案 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传递变量。使用哪种语言并不重要,那些是你必须使用的数组。