如何将 perl cgi url 查询字符串分配给变量?

How to assign perl cgi url query string to variable?

请建议如何将 query_string 值分配给单个变量?

my @values = split(/&/,$ENV{QUERY_STRING});

foreach my $i (@values) {
    ($fieldname, $data) = split(/=/, $i);
    print "$fieldname = $data<br>\n";
}

我得到以下值。我正在尝试分配给单个值,例如 $org、$value、$source、$target。

key =  MAIN
value = test
source = master
target = 123

首先,使用这样的代码手动解析 CGI 参数在 20 年前就已经过时了。最好建议您使用 CGI.pm.

中的 param() 方法
use CGI 'param';

foreach my $fieldname (param()) {
  print "$fieldname = ", param($fieldname), "\n";
}

您可以直接声明变量。

use CGI 'param';

my $key =   param('something');
my $value = param('something else');
# etc...

但也许最好将参数存储在散列中。

use CGI 'param';

my %param;
foreach (param()) {
  $param{$_} = param($_);
}

终于到了 2015 年了,你为什么还在写 CGI 程序?