我见过删除哈希元素delete
。但是,如果某些元素日期具有undef
值怎么办?
我想删除所有值为 undef
的哈希元素。
我将如何以一行或最简单的方式做到这一点。
我建议你删除一个哈希片,使用grep
来确定哪些键对应于未定义的值
use strict;
use warnings 'all';
my %h = (
a => 1,
b => undef,
c => 1,
d => undef,
);
delete @h{ grep { not defined $h{$_} } keys %h };
use Data::Dump;
dd %h;
输出
{ a => 1, c => 1 }
foreach (keys %hash) {
delete $hash->{$_} unless defined $hash->{$_};
}