【发布时间】:2015-07-12 22:33:34
【问题描述】:
所以我有一个包含数组的对象:
package MyObject;
sub new {
my($type) = @_;
my $self->{Params}{Status}{Packages} = [];
}
我有一个添加新的包子,它附加到这个“包”数组上,如:
sub add_package {
my($self, $package_obj) = @_;
push $self->{Params}{Status}{Packages}, $package;
}
现在,当我去查找阵列中的所有包时,我遇到了问题。每当我尝试像这样取出包裹时:
foreach my $package($self->{Params}{Status}{Packages}) {
# do something with $package.
}
这只会循环一次。现在据我了解,哈希实际上存储了一个指向数组的指针,所以我尝试这样做:
foreach my $package(@$self->{Params}{Status}{Packages}) {
# do something with $package.
}
然后有一个错误说 $self 不是一个数组。我确实注意到了:
scalar $self->{Params}{Status}{Packages};
返回:
@ARRAY(0xSome Address);
我错过了什么?以及如何使用foreach 循环来遍历我的数组?
【问题讨论】: