Perl通过哈希引用删除基本密钥
发布时间:2020-12-15 21:45:32 所属栏目:大数据 来源:网络整理
导读:my %myHash = ( key1 = { test1 = 1,test2 = 2,},key2 = { test1 = 3,test2 = 4,);my $myRef = $myHash{ "key". ((~~keys %myHash) + 1) } //= { test1 = 5,test2 = 6,}; 幽默我,并假设上述实际上是实用的.我如何通过引用删除这个新创建的密钥? delete $myR
my %myHash = ( key1 => { test1 => 1,test2 => 2,},key2 => { test1 => 3,test2 => 4,); my $myRef = $myHash{ "key". ((~~keys %myHash) + 1) } //= { test1 => 5,test2 => 6,}; 幽默我,并假设上述实际上是实用的.我如何通过引用删除这个新创建的密钥? delete $myRef; 显然不起作用 编辑: sub deleteRef { my ( $hash_var,$hash_ref ) = @_; for ( keys %$hash_var ) { delete $hash_var->{$_} if ($hash_var->{$_} == $hash_ref); } } 用法: deleteRef(%myHash,$myRef); 怎么样?还是不推荐? 解决方法
这将删除%myHash中$myRef的每次出现:
for my $key (keys %myHash) { if ($myHash{$key} == $myRef) { delete $myHash{$key}; } } 您可以使用==来测试使用相同内存地址的引用. 我认为这是一个坏主意,但我在嘲笑你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |