作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试做的事情:
将文件及其 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/
我是一名优秀的程序员,十分优秀!