Arrays 如何在perl中访问哈希数组中的数组?
我有一个哈希数组,其中一个哈希值是一个数组。 ->我把@title推到part 至于印刷品, ->我将每本书{part}放在一个临时数组中,以访问title的每个元素,但它只打印第一个元素 我无法访问数组书中标题的所有元素Arrays 如何在perl中访问哈希数组中的数组?,arrays,perl,hash,Arrays,Perl,Hash,我有一个哈希数组,其中一个哈希值是一个数组。 ->我把@title推到part 至于印刷品, ->我将每本书{part}放在一个临时数组中,以访问title的每个元素,但它只打印第一个元素 我无法访问数组书中标题的所有元素 @books = (); @title = (1,2,3,4,5); push @books,{subject=>"hello" , part =>@title }; for($i=0;$i<scalar(@books);++$i) { print
@books = ();
@title = (1,2,3,4,5);
push @books,{subject=>"hello" , part =>@title };
for($i=0;$i<scalar(@books);++$i)
{
print $books[$i]{subject};
@temp = $books[$i]{part};
for($j=0;$j<scalar(@temp);++$j)
{
print $temp[$j]; #this print just first element "1"
}
}
这里的问题是您在@books数组上推送的哈希引用没有正确创建 您正在创建的哈希引用如下所示:
{ 'subject' => 'hello',
'part' => 1,
'2' => 3,
'4' => 5,
}
{ 'subject' => 'hello',
'part' => [
1,
2,
3,
4,
5,
],
}
当您可能希望它看起来像这样时:
{ 'subject' => 'hello',
'part' => 1,
'2' => 3,
'4' => 5,
}
{ 'subject' => 'hello',
'part' => [
1,
2,
3,
4,
5,
],
}
这是因为哈希和数组中的值必须是标量值。要正确创建哈希引用以需要在键部分下存储对@title数组的引用,请使用\:
注意:这也意味着,当您想要将部分密钥提取到@temp数组中时,您需要取消引用它,因为它是一个数组引用:
@temp = @{ $books[$i]{part} };
这里的问题是您在@books数组上推送的哈希引用没有正确创建 您正在创建的哈希引用如下所示:
{ 'subject' => 'hello',
'part' => 1,
'2' => 3,
'4' => 5,
}
{ 'subject' => 'hello',
'part' => [
1,
2,
3,
4,
5,
],
}
当您可能希望它看起来像这样时:
{ 'subject' => 'hello',
'part' => 1,
'2' => 3,
'4' => 5,
}
{ 'subject' => 'hello',
'part' => [
1,
2,
3,
4,
5,
],
}
这是因为哈希和数组中的值必须是标量值。要正确创建哈希引用以需要在键部分下存储对@title数组的引用,请使用\:
注意:这也意味着,当您想要将部分密钥提取到@temp数组中时,您需要取消引用它,因为它是一个数组引用:
@temp = @{ $books[$i]{part} };
另请参见:。还有一个问题:对于每本书,它都会打印最后一本书的信息。另外:。还有一个问题:对于每本书,它都会打印最后一本书的信息