在Perl中,是否可以列出特定类的所有对象?
例如,我有两个类Character
的对象:
my $char1 = Character->new('John');
my $char2 = Character->new('Adam');
现在,我想迭代所有Character
个对象($char1
和$char2
),例如:
foreach ( "objects Character" ) {
print "$_->getName()\n";
}
答案 0 :(得分:3)
不,Perl不按类维护对象列表。你需要自己跟踪这个。
如果您有固定数量的对象:
my $char1 = Character->new('John');
my $char2 = Character->new('Adam');
for ($char1, $char2) {
print $_->getName(), "\n";
}
如果您有多个可变对象:
my @chars;
push @chars, Character->new('John');
push @chars, Character->new('Adam');
for (@chars) {
print $_->getName(), "\n";
}