我在Perl中创建了一个哈希我的%hash =(2 =>’dog’,1 =>’cat’);
当我打印$hash {3}时,它会出现错误(在打印中使用未初始化的值).但是,如果不是哈希值,有没有办法默认值?
解决方法
my $value = exists($hash{$k}) ? $hash{$k} : 'default';
要实际更改哈希值,请使用
$hash{$k} = 'default' if !exists($hash{k});
如果$hash {$k}总是被定义,如果它存在,你也可以使用
my $value = defined($hash{$k}) ? $hash{$k} : 'default';
这可以减少到
my $value = $hash{$k} // 'default'; # 5.10+
要实际更改哈希值,请使用
$hash{$k} = 'default' if !defined($hash{k});
要么
$hash{$k} //= 'default'; # 5.10+
如果$hash {$k}总是存在,那么你也可以使用
my $value = $hash{$k} ? $hash{$k} : 'default';
这可以减少到
my $value = $hash{$k} || 'default';
要实际更改哈希值,请使用
$hash{$k} = 'default' if !$hash{k};
要么
$hash{$k} ||= 'default';