0

I am trying to call a perl script from my HTML page. The way am trying to do is to call the url of the perl script located on the server.

Here is the piece of code:

HTML:

var fname = "Bob";
var url='http://xxx.com:30000/cgi-bin/abc.pl?title=fname';  
window.open(url,"_self");                       

The way am trying to retrieve it in perl as:

Perl:

print "$ARGV[0]\n";

Now, I have 3 questions:

  1. I think this is the correct way to pass the variables but am not able to print the argument in perl.
  2. If i want to pass another variable lname, how do i append it to the url?
  3. My window.open should open the output in the same window, since it uses the parameter _self. Still it doesn't.

Could anybody point out the problems?

Thanks, Buzz

4

3 回答 3

4

No@ARGV包含命令行参数并且将为空。

您需要CGI模块

use warnings;
use strict;

use CGI;
my $query = CGI->new;
print $query->param( 'title' );

编辑:查看 dan1111 关于如何生成 HTML 并将其显示在浏览器中的答案。

于 2012-10-25T07:56:03.940 回答
3

除了 Matteo 所说的,一个简单的print语句还不足以将一些输出发送到浏览器。

请参阅我最近写的一个答案,给出了一个带有输出的示例 CGI 脚本。

关于您的其他问题:

变量附加到一个用 分隔的 url &

var url='http://xxx.com:30000/cgi-bin/abc.pl?title=fname&description=blah';

基于这个问题,也许您应该尝试一下window.location.href = url;(尽管这并不能解释为什么您的代码不起作用)。

于 2012-10-25T08:02:44.070 回答
1

有两种不同的环境,每个环境都以两种不同的方式传递变量。命令行可以通过@ARGV 传递变量,浏览器可以通过@ENV 传递变量。无论您使用什么语言,这些都是您必须使用的数组。

于 2014-06-09T23:46:16.097 回答