只有当我有一个定义的值要分配时,我才希望在哈希中创建一个键/值对。
我目前正在这样做:
$hash{key1} = $val1 if defined $val1;
这没关系 - 但是当$val1
复杂时会变得烦人。有没有一种方法可以让我不用说$val1
两次就可以巧妙地得到相同的结果?下面的测试脚本可能有助于澄清我想要实现的目标。
use strict;
use warnings;
use Test::More tests => 1;
my %hash;
my $val1 = undef; # Explicitly undef
my $val2 = 10;
$hash{key1} = $val1 if defined $val1;
$hash{key2} = $val2 if defined $val2;
my %expected = ('key2', 10);
is_deeply(\%hash, \%expected, 'Hashes compare');