【发布时间】:2010-11-01 22:26:41
【问题描述】:
我从这个 perl 代码中得到了一些奇怪的结果 - 我需要从 Association 对象列表中删除几个元素。
我的方法是扫描列表一次,将匹配项推送到另一个数组,然后迭代该数组并删除每个数组,但我没有逃脱“迭代时不要删除陷阱”。
关于如何避免这种情况的任何想法?非常感谢。
my @agentConfAssociationDeletionsList = (
"AcceptTPCookie",
"AgentNamesAreFQHostNames",
"BadCssChars",
"LogLocalTime"
);
#find associations to remove
my @associationsToRemove = ();
foreach my $association ($agentConf->GetAssociations()) {
if ( grep {$_ eq $association->Name()} @agentConfAssociationDeletionsList) {
print "pushing " . $association->Name() . "\n";
push(@associationsToRemove, $association);
}
}
#remove them
foreach my $association (@associationsToRemove) {
print "removing association: " . $association->Name();
agentConf->RemoveAssociation($association);
}
【问题讨论】:
标签: perl