Arrays 将MongoDB数组读入perl并遍历数据

Arrays 将MongoDB数组读入perl并遍历数据,arrays,mongodb,perl,multidimensional-array,Arrays,Mongodb,Perl,Multidimensional Array,我试图将MongoDB数据库中的一个数组捕获到Perl脚本中,并读取每个元素。这是一件我认为很简单的事情,但出于某种愚蠢的原因,它正在踢我的屁股 我的MongoDB文档(部分) “成员”:[ “5713b2d46d210e51836de591”, “我”, “你”, “他”, “她” ], Perl代码 $document = $database -> get_collection('my_collection')->find_one({_id => $oid}); @memb

我试图将MongoDB数据库中的一个数组捕获到Perl脚本中,并读取每个元素。这是一件我认为很简单的事情,但出于某种愚蠢的原因,它正在踢我的屁股

我的MongoDB文档(部分)

“成员”:[
“5713b2d46d210e51836de591”,
“我”,
“你”,
“他”,
“她”
],

Perl代码

$document = $database -> get_collection('my_collection')->find_one({_id => $oid});
@members = $document->{'members'};  
print Dumper @members;  

foreach $member (@members)  
    {
    print "member = $member\n";
    }
exit;
我得到的输出:

$VAR1=[
‘5713b2d46d210e51836de591’,
“我”,
‘你’,
‘他’,
“她”
];
成员=数组(0x47fa398)

查看最后一行,我看到传递给我的是对数组的引用,而不是值。因此,我尝试通过$member[0]或$member[1]进行访问,但这只返回相同的数组(0x*****)

请帮忙,我肯定这是件愚蠢的事

谢谢


Steven

我对Mongo不熟悉,但从输出来看,@members数组有一个元素——数组ref(正如您所怀疑的)。因为Mongo返回一个arrayref,所以最好将其存储在标量中,并像这样访问它

my $members = $document->{'members'};
print "second item returned is: ", $members->[1];
print "The complete contents:\n";
for my $item ( @$members )  {
    print "  ", $item;
}

马蒂,谢谢你。我没有想过尝试通过标量访问它。在我看来,它是一个数组,所以我试着将它视为一个数组。