How should I delete hash elements while iterating?

前端 未结 4 915
醉话见心
醉话见心 2021-01-11 11:50

I have fairly large hash (some 10M keys) and I would like to delete some elements from it.

I usually don\'t like to use delete or splice, a

4条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-11 12:40

    How about this:

    my %to_delete;
    
    foreach my $key (keys %hash) {
        if (should_be_deleted($key)) {
            $to_delete{$key}++;
        }
        # add some other keys the same way...
    }
    
    delete @hash{keys %to_delete};
    

提交回复
热议问题