我很新的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