【发布时间】:2017-07-29 22:58:33
【问题描述】:
我从 Perl 哈希(关联数组)中得到了意想不到的结果。
我正在尝试从 CGI 帖子中填充它,其中可能缺少某些表单值。
use strict;
use Data::Dumper;
use CGI;
my $cgi = new CGI;
my %data = (
'key1' => $cgi->param('fkey1'),
'key2' => $cgi->param('fkey2'),
'key3' => $cgi->param('fkey3'),
'key4' => $cgi->param('fkey4'),
'key5' => $cgi->param('fkey5'),
'key6' => $cgi->param('fkey6'),
'key7' => $cgi->param('fkey7'),
'key8' => $cgi->param('fkey8'),
'key9' => $cgi->param('fkey9'),
'key0' => $cgi->param('fkey0'),
);
print "Content-type: text/html\n\n<pre>";
print Dumper \%data;
my $fkey1 = $cgi->param('fkey1');
my $fkey2 = $cgi->param('fkey2');
my $fkey3 = $cgi->param('fkey3');
my $fkey4 = $cgi->param('fkey4');
my $fkey5 = $cgi->param('fkey5');
my $fkey6 = $cgi->param('fkey6');
my $fkey7 = $cgi->param('fkey7');
my $fkey8 = $cgi->param('fkey8');
my $fkey9 = $cgi->param('fkey9');
my $fkey0 = $cgi->param('fkey0');
my %data2 = (
'key1' => $fkey1,
'key2' => $fkey2,
'key3' => $fkey3,
'key4' => $fkey4,
'key5' => $fkey5,
'key6' => $fkey6,
'key7' => $fkey7,
'key8' => $fkey8,
'key9' => $fkey9,
'key0' => $fkey0,
);
print "Content-type: text/html\n\n<pre>";
print Dumper \%data2;
%data 完全错误。我必须像 %data2 那样做。这个的输出是:
$VAR1 = {
'key9' => 'key0',
'key5' => 'key6',
'key1' => 'key2',
'key7' => 'key8',
'key3' => 'key4'
};
$VAR1 = {
'key9' => undef,
'key5' => undef,
'key6' => undef,
'key8' => undef,
'key0' => undef,
'key3' => undef,
'key2' => undef,
'key1' => undef,
'key4' => undef,
'key7' => undef
};
所以如果 $cgi->param('fkey1') 是 undef,它会跳过该值并使用下一个键作为值。我需要做些什么才能让 %data 正常工作吗?
【问题讨论】:
标签: perl