我试图在每个 CGI 中将数组作为隐藏类型发送。从PerlMonks,我收集到我们不能按原样发送数组。因此,我加入了数组以形成一个字符串。代码如下所示:
my @names;
my $name, $value;
foreach $pair (@pairs)
{ ($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
chomp($value);
push (@names, $value);
}
pop (@names);
print '<form action="test-plan.cgi" method="POST">';
print "<input name=\"typ\" value=\"red\" type=\"radio\" /><b>RED</b>";
print "<input name=\"typ\" value=\"blue\" type=\"radio\" /><b>BLUE</b>";
print "<input name=\"typ\" value=\"green\" type=\"radio\" /><b>GREEN</b>";
my $namestring = join("-",@names);
print "<input type=\"hidden\" name=\"these_names\" value=$namestring>";
print "<br /><br />$namestring";
print '<br /><input name="thisdata" type="submit" value="Select">';
所以理想情况下,这应该发送选定的单选按钮和名为$namestring
.
这就是捕捉它的原因:
print "$FORM{typ}";
my @names;
@names = split(/-/,$FORM{these_names});
print @names;
print "$FORM{these_names}";
这两个打印语句都只给出数组中的第一个元素。
我在这里做错了什么?