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';