gpt4 book ai didi

perl - 在 Perl 中从 2D 哈希中删除键

转载 作者:行者123 更新时间:2023-12-01 10:04:35 24 4
gpt4 key购买 nike

我的哈希看起来像这样

%hIDSet = (
'TSASD2' => {
'country' => 'US',
'newid' => 'IMRAN',
'oldid' => 'TSASD4'
}

'TS767' => {
'country' => 'DE',
'newid' => 'B90LKT',
'oldid' => '432553'
},
);

当我这样做的时候

my $sID = "TSASD2";
delete $hIDSet{$sID};

我得到的输出是

%hIDSet = (
'TSASD2' => {},
'TS767' => {
'country' => 'DE',
'newid' => 'B90LKT',
'oldid' => '432553'
},
);

我的问题是为什么ID没有完全删除?

最佳答案

您确实删除了 key ,因此您必须在再次转储哈希之前重新创建它,如以下代码段所示:

my $sID = "TSASD2";
my %hIDSet = ( $sID => {} );
delete $hIDSet{$sID};
print(Dumper(\%hIDSet)); # It's gone
if ($hIDSet{$sID}{foo}) { '...' }
print(Dumper(\%hIDSet)); # You've recreated it.

请记住

$hIDSet{$sID}{foo}

的缩写
$hIDSet{$sID}->{foo}

还有那个

EXPR->{foo}

表示

( EXPR //= {} )->{foo}

所以

$hIDSet{$sID}{foo}

表示

( $hIDSet{$sID} //= {} )->{foo}

请注意,这可以分配给 $hIDSet{$sID}

关于perl - 在 Perl 中从 2D 哈希中删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16224665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com