我正在尝试从使用以下代码创建的哈希数组中删除值:
while ((my $Genotype1, my $Fitness1) = each (%Normalisedfithash)) {
while ((my $Parent1A, my $TallyP1) = each(%P1Tallyhash)) {
my $ParentTally = 0;
my $SecondParent = {
Parent2 => $Parent1A,
Tally => $ParentTally,
};
push @{ $StoredParentshash{$Genotype1}}, $SecondParent;
我一直在尝试从零%StoredParentshash
处删除值。Tally
(我有进一步的更新代码Tally
,但有些没有更新,我希望将它们从哈希中删除)。
我写了以下内容:
for my $Parent (keys %StoredParentshash) {
my $aref1 = $StoredParentshash{$Parent};
for my $hashref1 (@$aref1) {
my $Tally = $hashref1->{'Tally'};
if ($Tally == 0){
delete $hashref1->{'Tally'};
delete $hashref1->{'Parent2'};
}
}
}
这段代码有点删除数据,但是当我使用Data::Dumper
结构时,我得到的结果如下所示:
'7412' => [
{},
{
'Tally' => 1,
'Parent2' => '2136'
},
{},
{},
{},
如何完全删除Tally
零而不是留下的键{}
?
谢谢!