所以,这不起作用,我不明白为什么。我尝试过各种可能的变化。但没有任何作用。我已经准备好把电锯带到我的服务器上,但希望你可以阻止它:
sub getQuestMarkers {
#database stuff
...
my %package;
while(my ($key, $lat, $lng) = $sth->fetchrow_array()) {
$package{$key} = ($lat,$lng);
}
...
return %package;
}
my %markers = getQuestMarkers();
while(my( $key, $value) = each %markers) {
print "$key: @value - $value[0] $value[1]\n";
}
答案 0 :(得分:3)
使用方括号[ ]
创建数组引用,而不是parens ( )
;
如上所述,您的代码会丢弃第一个值$lat
。这样写它:
$package{$key} = [$lat,$lng];
您可以输出如下值:
my ($lat,$lng) = @{ $package{$key} };
在您的代码中,您可以通过取消引用来打印出这些值:
print "$key: " . $value->[0] . " " . $value->[1] . "\n";