gpt4 book ai didi

Perl:比较两个散列,从一个中删除键

转载 作者:行者123 更新时间:2023-12-02 08:48:13 25 4
gpt4 key购买 nike

我正在尝试做的事情:

将文件及其 md5 哈希值存储到哈希中,在添加或删除文件时更改哈希。

到目前为止,我能够存储 md5 哈希并在添加文件时更新哈希。但是我不确定如何删除已删除文件的 key

我现在的方法是:

将数组转成散列进行比较

my %files = map { $_ => 1 } @files;

检查它们是否相同

if (%files ~~  %hash).. same.. else... different

我不确定如何进一步实现。这是我的想法:

删除散列中不再有文件的键(伪代码)

Where exists $hash{$_} && !exists $files{$_} delete $hash{$_}

最佳答案

只循环一个,检查是否存在并删除...

foreach my $k ( keys %file ) {
delete $hash{$k} if exists $hash{$k};
}

此外,由于为此目的使用散列时的内部机制,您最好将 undef 分配给它,而不是 1 。为简单起见,保留了原因。

my %files = map { $_ => undef } @files;

我不确定条件是否使它更快或更慢——这可能无关紧要。

关于Perl:比较两个散列,从一个中删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823401/

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