我很新的perl。我有一个SomeItem对象,它包含一个InnerObject对象,我想在其上调用“foo”方法。访问对象内的对象? (Perl)
foreach $obj (@ { $self->{InnerObjects} }) {
$obj->foo();
}
这是行不通的。这里的错误,我得到:
无法调用“foo”而不会有一个包或对象引用
的InnerObject类是在同一文件中SomeItem,并希望如果可以保持这样的说法,那么我怎样才能从SomeItem类/包中访问InnerObject类/包?
以下是我声明数组构造函数:
$self->{InnerObjects} = [];
,并设置:
sub set {
my ($self, @items) = @_;
@{ $self->{InnerObjects} } = @items;
}
你如何建立'InnerObjects'? –
'$ self - > {InnerObjects}'不包含(对一个对象数组的引用)。它是对数组的引用,但该数组包含除(仅)对象之外的其他内容。错误不在您发布的代码中。 – ikegami
如果它们是'InnerObjects',那么你的for循环将起作用。为什么不尝试倾销'$ self - > {InnerObjects}'的内容并查看实际内容。 – stevenl